1 |
NOTE: GLK's approximate ranking of 5 most imporant tagged with |
NOTE: GLK's approximate ranking of 5 most important tagged with |
2 |
[GLK:1], [GLK:2], ... |
[GLK:1], [GLK:2], ... |
3 |
|
|
4 |
======================== |
============================== |
5 |
SHORT TERM ============= (for curvature-based VR) |
other SHORT TERM ============= (including needed for LIC) |
6 |
======================== |
============================== |
7 |
|
|
8 |
|
[GLK:1] Add sequence types (needed for evals & evecs) |
9 |
|
syntax |
10 |
|
types: ty '{' INT '}' |
11 |
|
value construction: '{' e1 ',' … ',' en '}' |
12 |
|
indexing: e '{' e '}' |
13 |
|
|
14 |
IL support for higher-order tensor values (matrices, etc). |
IL support for higher-order tensor values (matrices, etc). |
15 |
tensor construction [DONE] |
tensor construction [DONE] |
22 |
typechecking |
typechecking |
23 |
IL and codegen |
IL and codegen |
24 |
|
|
|
Add sequence types |
|
|
syntax |
|
|
types: ty '{' INT '}' |
|
|
value construction: '{' e1 ',' … ',' en '}' |
|
|
indexing: e '{' e '}' |
|
|
|
|
|
============================== |
|
|
other SHORT TERM ============= (including needed for LIC) |
|
|
============================== |
|
|
|
|
25 |
test/uninit.diderot: |
test/uninit.diderot: |
26 |
documents need for better compiler error messages when output variables |
documents need for better compiler error messages when output variables |
27 |
are not initialized; the current messages are very cryptic |
are not initialized; the current messages are very cryptic |
28 |
|
|
29 |
determinant ("det") for tensor[3,3] |
determinant ("det") for tensor[3,3] |
30 |
|
|
|
extend norm (|exp|) to all tensor types [DONE for vectors and matrices] |
|
|
|
|
31 |
expand trace in mid to low translation |
expand trace in mid to low translation |
32 |
|
|
33 |
value-numbering optimization |
value-numbering optimization |
40 |
MEDIUM TERM ================== (including needed for streamlines & tractography) |
MEDIUM TERM ================== (including needed for streamlines & tractography) |
41 |
============================== |
============================== |
42 |
|
|
43 |
[GLK:2] evals & evecs for symmetric tensor[3,3] (requires sequences) |
[GLK:1] evals & evecs for symmetric tensor[3,3] (requires sequences) |
44 |
|
|
45 |
[GLK:3] Save Diderot output to nrrd, instead of "mip.txt" |
[GLK:2] Save Diderot output to nrrd, instead of "mip.txt" |
46 |
For grid of strands, save to similarly-shaped array |
For grid of strands, save to similarly-shaped array |
47 |
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 |
48 |
For ragged things (like tractography output), will need to save both |
For ragged things (like tractography output), will need to save both |
49 |
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 |
50 |
to index into complete list |
to index into complete list |
51 |
|
|
52 |
[GLK:4] Use of Teem's "hest" command-line parser for getting |
[GLK:3] Use of Teem's "hest" command-line parser for getting |
53 |
any input variables that are not defined in the source file |
any input variables that are not defined in the source file |
54 |
|
|
55 |
[GLK:5] ability to declare a field in such a way so that probe |
[GLK:4] ability to declare a field in such a way so that probe |
56 |
positions are *always* clamped to the support of "inside"; |
positions are *always* clamped to the support of "inside"; |
57 |
there are many cases where this is the sensible behavior. |
there are many cases where this is the sensible behavior. |
58 |
(More generally, we could also have "repeat" declaration, |
(could also have "repeat" declaration, to mimic GL_REPEAT texturing) |
59 |
copying action of GL_REPEAT in texturing) |
|
60 |
|
extend norm (|exp|) to all tensor types [DONE for vectors and matrices] |
61 |
|
|
62 |
ability to emit/track/record variables into dynamically re-sized |
ability to emit/track/record variables into dynamically re-sized |
63 |
runtime buffer |
runtime buffer |
93 |
other MEDIUM TERM ============ (needed for particles) |
other MEDIUM TERM ============ (needed for particles) |
94 |
============================== |
============================== |
95 |
|
|
96 |
run-time birth and death of strands |
[GLK:5] run-time death of strands; test/iso2d.diderot provides |
97 |
|
great initial test for "die" command. |
98 |
|
|
99 |
|
run-time birth of strands |
100 |
|
|
101 |
"initially" supports lists |
"initially" supports lists |
102 |
|
|
115 |
(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 |
116 |
conditional. |
conditional. |
117 |
|
|
118 |
|
add ":" for tensor dot product (contracts out two indices |
119 |
|
instead of one like •), valid for all pairs of tensors with |
120 |
|
at least two indices |
121 |
|
|
122 |
============================== |
============================== |
123 |
other MEDIUM TERM ============ |
other MEDIUM TERM ============ |
124 |
============================== |
============================== |
128 |
|
|
129 |
support for Python interop and GUI |
support for Python interop and GUI |
130 |
|
|
131 |
|
Python/ctypes interface to run-time |
132 |
|
|
133 |
============================== |
============================== |
134 |
LONG TERM ==================== |
LONG TERM ==================== |
135 |
============================== |
============================== |
142 |
|
|
143 |
co- vs contra- index distinction |
co- vs contra- index distinction |
144 |
|
|
|
add ":" for tensor dot product (contracts out two indices |
|
|
instead of one like •), valid for all pairs of tensors with |
|
|
at least two indices |
|
|
|
|
145 |
some indication of tensor symmetry |
some indication of tensor symmetry |
146 |
(have to identify the group of index permutations that are symmetries) |
(have to identify the group of index permutations that are symmetries) |
147 |
|
|
153 |
|
|
154 |
"tensor comprehension" (like list comprehension) |
"tensor comprehension" (like list comprehension) |
155 |
|
|
|
Python/ctypes interface to run-time |
|
|
|
|
156 |
====================== |
====================== |
157 |
BUGS ================= |
BUGS ================= |
158 |
====================== |
====================== |
159 |
|
|
160 |
[GLK:1] test/fields.diderot: |
test/fields.diderot: |
161 |
documents various bugs/questions associated with simple field expressions |
Can't assign on field to another. |
|
(negation, addition, scalar multiplication) |
|
162 |
|
|
163 |
test/read2vecs.diderot: |
test/read2vecs.diderot: |
164 |
// 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 |