7 |
|
|
8 |
Remove CL from compiler |
Remove CL from compiler |
9 |
|
|
10 |
[GLK:3] Add sequence types (needed for evals & evecs) |
[GLK:2] Add sequence types (needed for evals & evecs) |
11 |
syntax |
syntax |
12 |
types: ty '{' INT '}' |
types: ty '{' INT '}' |
13 |
value construction: '{' e1 ',' … ',' en '}' |
value construction: '{' e1 ',' … ',' en '}' |
14 |
indexing: e '{' e '}' |
indexing: e '{' e '}' |
15 |
|
|
16 |
[GLK:4] evals & evecs for symmetric tensor[2,2] and |
[GLK:3] evals & evecs for symmetric tensor[2,2] and |
17 |
tensor[3,3] (requires sequences) |
tensor[3,3] (requires sequences) |
18 |
|
|
19 |
ability to emit/track/record variables into dynamically re-sized |
ability to emit/track/record variables into dynamically re-sized |
33 |
(currently only scalars & vectors). Want to add some regression tests |
(currently only scalars & vectors). Want to add some regression tests |
34 |
based on this and currently can't |
based on this and currently can't |
35 |
|
|
36 |
[GLK:1] Add a clamp function, which takes three arguments; either |
[GLK:1] Proper handling of stabilize method |
|
three scalars: |
|
|
clamp(lo, hi, x) = max(lo, min(hi, x)) |
|
|
or three vectors of the same size: |
|
|
clamp(lo, hi, [x,y]) = [max(lo[0], min(hi[0], x)), |
|
|
max(lo[1], min(hi[1], y))] |
|
|
This would be useful in many current Diderot programs. |
|
|
One question: clamp(x, lo, hi) is the argument order used in OpenCL |
|
|
and other places, but clamp(lo, hi, x) is much more consistent with |
|
|
lerp(lo, hi, x), hence GLK's preference |
|
|
[DONE] |
|
|
|
|
|
[GLK:2] Proper handling of stabilize method |
|
37 |
|
|
38 |
allow "*" to represent "modulate": per-component multiplication of |
allow "*" to represent "modulate": per-component multiplication of |
39 |
vectors, and vectors only (not tensors of order 2 or higher). Once |
vectors, and vectors only (not tensors of order 2 or higher). Once |
43 |
implicit type promotion of integers to reals where reals are |
implicit type promotion of integers to reals where reals are |
44 |
required (e.g. not exponentiation "^") |
required (e.g. not exponentiation "^") |
45 |
|
|
46 |
[GLK:5] Save Diderot output to nrrd, instead of "mip.txt" |
[GLK:4] Save Diderot output to nrrd, instead of "mip.txt" |
47 |
For grid of strands, save to similarly-shaped array |
For grid of strands, save to similarly-shaped array |
48 |
For list of strands, save to long 1-D (or 2-D for non-scalar output) list |
For list of strands, save to long 1-D (or 2-D for non-scalar output) list |
49 |
For ragged things (like tractography output), will need to save both |
For ragged things (like tractography output), will need to save both |
50 |
complete list of values, as well as list of start indices and lengths |
complete list of values, as well as list of start indices and lengths |
51 |
to index into complete list |
to index into complete list |
52 |
|
|
53 |
[GLK:6] Use of Teem's "hest" command-line parser for getting |
[GLK:5] Use of Teem's "hest" command-line parser for getting |
54 |
any "input" variables that are not defined in the source file. |
any "input" variables that are not defined in the source file. |
55 |
|
|
56 |
[GLK:7] ability to declare a field so that probe positions are |
[GLK:6] ability to declare a field so that probe positions are |
57 |
*always* "inside"; with various ways of mapping the known image values |
*always* "inside"; with various ways of mapping the known image values |
58 |
to non-existant index locations. One possible syntax emphasizes that |
to non-existant index locations. One possible syntax emphasizes that |
59 |
there is a index mapping function that logically precedes convolution: |
there is a index mapping function that logically precedes convolution: |
107 |
Allow integer exponentiation ("^2") to apply to square matrices, |
Allow integer exponentiation ("^2") to apply to square matrices, |
108 |
to represent repeated matrix multiplication |
to represent repeated matrix multiplication |
109 |
|
|
|
Alow X *= Y, X /= Y, X += Y, X -= Y to mean what they do in C, |
|
|
provided that X*Y, X/Y, X+Y, X-Y are already supported. |
|
|
Nearly every Diderot program would be simplified by this. |
|
|
[DONE] |
|
|
|
|
110 |
Put small 1-D and 2-D fields, when reconstructed specifically by tent |
Put small 1-D and 2-D fields, when reconstructed specifically by tent |
111 |
and when differentiation is not needed, into faster texture buffers. |
and when differentiation is not needed, into faster texture buffers. |
112 |
test/illust-vr.diderot is good example of program that uses multiple |
test/illust-vr.diderot is good example of program that uses multiple |
151 |
(but we should only duplicate over the live-range of the result of the |
(but we should only duplicate over the live-range of the result of the |
152 |
conditional. |
conditional. |
153 |
|
|
154 |
[GLK:8] Want: non-trivial field expressions & functions. |
[GLK:7] Want: non-trivial field expressions & functions. |
155 |
scalar fields from scalar fields F and G: |
scalar fields from scalar fields F and G: |
156 |
field#0(2)[] X = (sin(F) + 1.0)/2; |
field#0(2)[] X = (sin(F) + 1.0)/2; |
157 |
field#0(2)[] X = F*G; |
field#0(2)[] X = F*G; |