Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/pure-cfg/TODO
ViewVC logotype

Annotation of /branches/pure-cfg/TODO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 784 - (view) (download)

1 : glk 781 ========================
2 :     SHORT TERM ============= (for curvature-based VR)
3 :     ========================
4 :    
5 : jhr 763 Outer products
6 :     syntax [DONE]
7 :     typechecking
8 :     IL and codegen
9 :    
10 :     Add M dot v, v dot M, and M dot N
11 :    
12 :     Identity matrix [DONE up to code generation]
13 :    
14 : glk 782 determinant ("det") for tensor[3,3]
15 :    
16 : jhr 763 trace [DONE]
17 :    
18 :     expand trace in mid to low translation
19 :    
20 :     extend norm (|exp|) to all tensor types
21 :    
22 : glk 781 extend normalize to all tensor types
23 : jhr 763
24 :     Use ∇⊗ etc syntax
25 :     syntax [DONE]
26 :     typechecking
27 :     IL and codegen
28 :    
29 :     Add sequence types
30 :     syntax
31 :     types: ty '{' INT '}'
32 :     value construction: '{' e1 ',' … ',' en '}'
33 :     indexing: e '{' e '}'
34 :    
35 :     IL support for higher-order tensor values (matrices, etc).
36 :     tensor construction
37 :     tensor indexing and slicing
38 : jhr 767 verify that hessians work correctly
39 : jhr 763
40 :     Add type aliases for color types
41 :     rgb = real{3}
42 :     rgba = real{4}
43 : glk 781
44 : glk 782 Decide if we want to allow redefinitions of variables
45 :     (as in vr-lite-cam.diderot)
46 :    
47 : jhr 784 Infix dot product and cross product [DONE]
48 : glk 781
49 : jhr 784 lerp on scalars and vectors [DONE]
50 :    
51 : glk 781 ==============================
52 :     other SHORT TERM ============= (needed for LIC)
53 :     ==============================
54 :    
55 :     vector fields: convolution on vector images
56 :    
57 :     ==============================
58 :     MEDIUM TERM ================== (needed for streamlines & tractography)
59 :     ==============================
60 :    
61 :     ability to emit/track/record variables into dynamically re-sized
62 :     runtime buffer
63 :    
64 :     evals & evecs for symmetric tensor[3,3]
65 :    
66 :     tensor fields: convolution on general tensor images
67 :    
68 :     ==============================
69 :     other MEDIUM TERM ============ (needed for particles)
70 :     ==============================
71 :    
72 :     run-time birth and death of strands
73 :    
74 :     "initially" supports lists
75 :    
76 :     "initially" supports lists of positions output from
77 :     different initalization Diderot program
78 :    
79 :     spatial data structure that permits strands' queries of neighbors
80 :    
81 : jhr 784 proper handling of stabilize method
82 :    
83 : glk 781 ==============================
84 :     LONG TERM ====================
85 :     ==============================
86 :    
87 :     co- vs contra- index distinction
88 :    
89 : glk 783 add ":" for tensor dot product (contracts out two indices
90 :     instead of one like •), valid for all pairs of tensors with
91 :     at least two indices
92 :    
93 : glk 781 some indication of tensor symmetry
94 :     (have to identify the group of index permutations that are symmetries)
95 :    
96 :     dot works on all tensors
97 :    
98 :     outer works on all tensors
99 :    
100 :     Einstein summation notation
101 :    
102 :     "tensor comprehension" (like list comprehension)
103 : jhr 784
104 :     ======================
105 :     BUGS =================
106 :     ======================
107 :    
108 :     test/mip-cam.diderot:
109 :     // generated C code looks like "(float)p_ui_0--0.5e0f"
110 :     //real rayU = 2.0*camUmax*(real(ui) - -0.5)/real(imgResU) - camUmax;
111 :    
112 :     test/vr-kcomp.diderot:
113 :     // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ...
114 :    
115 :     test/vr-lite-cam.diderot:
116 :     // HEY (BUG): these:
117 :     // vec3 lightVspDir = [1.0, -0.0, 0.0];
118 :     // vec3 lightVspDir = [1.0, 0.0, -0.0];
119 :     // work okay but this:
120 :     // vec3 lightVspDir = [1.0, 0.0, 0.0]; ...
121 :    
122 :     test/zslice2.diderot:
123 :     // but is this not valid syntax for creating field in one shot?
124 :     //field#2(3)[] F = (load("../data/zimg112.nrrd")) ⊛ bspln3;
125 :     // It is valid syntax, but there is a bug in the conversion from HighIL to MidIL
126 :    
127 :     test/zslice2.diderot:
128 :     // HEY (bug) bspln5 leads to problems ...
129 :     // uncaught exception Size [size]
130 :     // raised at c-target/c-target.sml:47.15-47.19
131 :     //field#4(3)[] F = img ⊛ bspln5;
132 :    
133 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0