5 
SHORT TERM ============= (*needed* for streamlines & tractography) 
SHORT TERM ============= (*needed* for streamlines & tractography) 
6 
======================== 
======================== 
7 



Remove CL from compiler [DONE] 




8 
[GLK:2] Add sequence types (needed for evals & evecs) 
[GLK:2] Add sequence types (needed for evals & evecs) 
9 
syntax 
syntax 
10 
types: ty '{' INT '}' 
types: ty '{' INT '}' 
15 
tensor[3,3] (requires sequences) 
tensor[3,3] (requires sequences) 
16 


17 
ability to emit/track/record variables into dynamically resized 
ability to emit/track/record variables into dynamically resized 
18 
runtime buffer 
runtime output buffer 
19 


20 
tensor fields: convolution on general tensor images (order > 1) 
tensor fields: convolution on general tensor images (order > 1) 
21 


23 
SHORTISH TERM ========= (to make using Diderot less annoying to 
SHORTISH TERM ========= (to make using Diderot less annoying to 
24 
======================== program in, and slow to execute) 
======================== program in, and slow to execute) 
25 



valuenumbering optimization [DONE] 




26 
Allow ".ddro" file extensions in addition to ".diderot" 
Allow ".ddro" file extensions in addition to ".diderot" 
27 


28 
Be able to output values of type tensor[2,2] and tensor[3,3]; 
Be able to output values of type tensor[2,2] and tensor[3,3]; 
46 
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 
47 
to index into complete list 
to index into complete list 
48 


49 
[GLK:5] Use of Teem's "hest" commandline parser for getting 
[GLK:5] ability to declare a field so that probe positions are 

any "input" variables that are not defined in the source file. [DONE] 





[GLK:6] ability to declare a field so that probe positions are 

50 
*always* "inside"; with various ways of mapping the known image values 
*always* "inside"; with various ways of mapping the known image values 
51 
to nonexistant index locations. One possible syntax emphasizes that 
to nonexistant index locations. One possible syntax emphasizes that 
52 
there is a index mapping function that logically precedes convolution: 
there is a index mapping function that logically precedes convolution: 
69 
rgb = real{3} 
rgb = real{3} 
70 
rgba = real{4} 
rgba = real{4} 
71 


72 

Revisit how images are created within the language. 
73 

The "load" operator should probably go away, and its strangs 
74 

that strings are there only as a way to refer to nrrd filenames 
75 


76 
============================== 
============================== 
77 
MEDIUM TERM ================== (*needed* for particles) 
MEDIUM TERM ================== (*needed* for particles) 
78 
============================== 
============================== 
109 
test/illustvr.diderot is good example of program that uses multiple 
test/illustvr.diderot is good example of program that uses multiple 
110 
such 1D fields basically as lookuptablebased function evaluation 
such 1D fields basically as lookuptablebased function evaluation 
111 



expand trace in mid to low translation [DONE] 




112 
extend norm (exp) to all tensor types [DONE for vectors and matrices] 
extend norm (exp) to all tensor types [DONE for vectors and matrices] 
113 


114 
determinant ("det") for tensor[3,3] 
determinant ("det") for tensor[3,3] 
128 
LONG TERM ==================== (make Diderot more interesting/attractive from 
LONG TERM ==================== (make Diderot more interesting/attractive from 
129 
============================== a research standpoint) 
============================== a research standpoint) 
130 


131 

[GLK:6] Want codegeneration working for tensors of order three. 
132 

Order three matters for edge detection in scalar fields (to get 
133 

second derivatives of gradient magnitude), second derivatives 
134 

of vector fields (for some feature extraction), and first 
135 

derivatives of diffusion tensor fields. 
136 


137 
IL support for higherorder tensor values (matrices, etc). 
IL support for higherorder tensor values (matrices, etc). 
138 
tensor construction [DONE] 
tensor construction [DONE] 
139 
tensor indexing [DONE] 
tensor indexing [DONE] 
140 
tensor slicing 
tensor slicing 

verify that hessians work correctly [DONE] 

141 


142 
Better handling of variables that determines the scope of a variable 
Better handling of variables that determines the scope of a variable 
143 
based on its actual use, instead of where the user defined it. So, 
based on its actual use, instead of where the user defined it. So, 