Home My Page Projects Code Snippets Project Openings diderot

# SCM Repository

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

# Diff of /branches/pure-cfg/TODO

revision 1110, Wed May 4 21:51:22 2011 UTC revision 1127, Thu May 5 14:06:32 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 96  Line 115
115  [GLK:5] run-time death of strands; test/iso2d.diderot provides  [GLK:5] run-time death of strands; test/iso2d.diderot provides
116  great initial test for "die" command.  great initial test for "die" command.
117
118    Put small 1-D and 2-D fields, when reconstructed specifically by tent
119    and when differentiation is not needed, into faster texture buffers.
120    test/illust-vr.diderot is good example of program that uses multiple
121    such 1-D fields basically as lookup-table-based function evaluation
122
123  run-time birth of strands  run-time birth of strands
124
125  "initially" supports lists  "initially" supports lists
# Line 157  Line 181
181  BUGS =================  BUGS =================
182  ======================  ======================
183
test/bug-usevar.diderot:
looks like varialble scoping bug is still present in some cases?

test/bug-matrix.diderot:
3x3 matrix subtraction is broken