Home My Page Projects Code Snippets Project Openings diderot
 Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/pure-cfg/TODO
 [diderot] / branches / pure-cfg / TODO

Diff of /branches/pure-cfg/TODO

revision 1084, Wed May 4 08:15:37 2011 UTC revision 1133, Thu May 5 18:57:15 2011 UTC
# Line 5  Line 5
5  other SHORT TERM =============  (including needed for LIC)  other SHORT TERM =============  (including needed for LIC)
6  ==============================  ==============================
7
8    Add a clamp function, which takes three arguments; either three scalars:
9      clamp(x, minval, maxval)  = max(minval, min(maxval, x))
10    or three vectors of the same size:
11      clamp([x,y], minvec, maxvec)  = [max(minvec[0], min(maxvec[0], x)),
12                                       max(minvec[1], min(maxvec[1], y))]
13    This would be useful in many current Diderot programs.
14    One question: clamp(x, minval, maxval) is the argument order
15    used in OpenCL and other places, but clamp(minval, maxval, x)
16    would be more consistent with lerp(minout, maxout, x).
17
18    Level of differentiability in field type should be statement about how
19    much differentiation the program *needs*, rather than what the kernel
20    *provides*.  The needed differentiability can be less than or equal to
21    the provided differentiability.
22
23  [GLK:1] Add sequence types (needed for evals & evecs)  [GLK:1] Add sequence types (needed for evals & evecs)
24      syntax      syntax
25          types: ty '{' INT '}'          types: ty '{' INT '}'
# Line 52  Line 67
67  [GLK:3] Use of Teem's "hest" command-line parser for getting  [GLK:3] Use of Teem's "hest" command-line parser for getting
68  any input variables that are not defined in the source file  any input variables that are not defined in the source file
69
70  [GLK:4] ability to declare a field in such a way so that probe  [GLK:4] ability to declare a field so that probe positions are
71  positions are *always* clamped to the support of "inside";  *always* "inside"; with various ways of mapping the known image values
72  there are many cases where this is the sensible behavior.  to non-existant index locations.  One possible syntax emphasizes that
73  (could also have "repeat" declaration, to mimic GL_REPEAT texturing)  there is a index mapping function that logically precedes convolution:
74      F = bspln3 ⊛ (img ◦ clamp)
75      F = bspln3 ⊛ (img ◦ repeat)
76      F = bspln3 ⊛ (img ◦ mirror)
77    where "◦" or "∘" is used to indicate function composition
78
79  extend norm (|exp|) to all tensor types [DONE for vectors and matrices]  extend norm (|exp|) to all tensor types [DONE for vectors and matrices]
80
# Line 93  Line 112
112  other MEDIUM TERM ============ (needed for particles)  other MEDIUM TERM ============ (needed for particles)
113  ==============================  ==============================
114
115  [GLK:5] run-time death of strands; test/iso2d.diderot provides  Put small 1-D and 2-D fields, when reconstructed specifically by tent
116  great initial test for "die" command.  and when differentiation is not needed, into faster texture buffers.
117    test/illust-vr.diderot is good example of program that uses multiple
118    such 1-D fields basically as lookup-table-based function evaluation
119
120  run-time birth of strands  run-time birth of strands
121
# Line 157  Line 178
178  BUGS =================  BUGS =================
179  ======================  ======================
180
test/bug-usevar.diderot:
looks like varialble scoping bug is still present in some cases?

test/bug-matrix.diderot:
3x3 matrix subtraction is broken
(and then fix test/vr-curv-quad.diderot)

test/fields.diderot:
Can't assign on field to another.