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 '}' |
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 |
|
|
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, reconstructed by tent, into |
119 |
|
faster texture buffers |
120 |
|
|
121 |
run-time birth of strands |
run-time birth of strands |
122 |
|
|
123 |
"initially" supports lists |
"initially" supports lists |
179 |
BUGS ================= |
BUGS ================= |
180 |
====================== |
====================== |
181 |
|
|
|
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) |
|
|
|
|
182 |
test/read2vecs.diderot: |
test/read2vecs.diderot: |
183 |
// HEY (BUG?) shouldn't it be a type error to load this 2-D array of |
// HEY (BUG?) shouldn't it be a type error to load this 2-D array of |
184 |
// 2-vectors into a 2-D *scalar* field? Instead, get: |
// 2-vectors into a 2-D *scalar* field? Instead, get: |