SCM Repository
Annotation of /branches/pure-cfg/TODO
Parent Directory
|
Revision Log
Revision 796 - (view) (download)
1 : | glk | 781 | ======================== |
2 : | SHORT TERM ============= (for curvature-based VR) | ||
3 : | ======================== | ||
4 : | |||
5 : | glk | 789 | For RGB color output of 2D transfer function (indexed by |
6 : | kappa1,kappa2), or for a 1D transfer function, will need | ||
7 : | something akin to convolution on vector images | ||
8 : | |||
9 : | jhr | 788 | IL support for higher-order tensor values (matrices, etc). |
10 : | tensor construction | ||
11 : | tensor indexing and slicing | ||
12 : | verify that hessians work correctly | ||
13 : | |||
14 : | jhr | 763 | Outer products |
15 : | syntax [DONE] | ||
16 : | typechecking | ||
17 : | IL and codegen | ||
18 : | |||
19 : | Add M dot v, v dot M, and M dot N | ||
20 : | |||
21 : | Identity matrix [DONE up to code generation] | ||
22 : | |||
23 : | trace [DONE] | ||
24 : | |||
25 : | glk | 785 | extend norm (|exp|) to tensor[3,3] |
26 : | jhr | 763 | |
27 : | jhr | 788 | Use ∇⊗ etc. syntax |
28 : | jhr | 763 | syntax [DONE] |
29 : | typechecking | ||
30 : | IL and codegen | ||
31 : | |||
32 : | Add sequence types | ||
33 : | syntax | ||
34 : | types: ty '{' INT '}' | ||
35 : | value construction: '{' e1 ',' … ',' en '}' | ||
36 : | indexing: e '{' e '}' | ||
37 : | |||
38 : | jhr | 784 | Infix dot product and cross product [DONE] |
39 : | glk | 781 | |
40 : | jhr | 784 | lerp on scalars and vectors [DONE] |
41 : | |||
42 : | glk | 781 | ============================== |
43 : | glk | 785 | other SHORT TERM ============= (including needed for LIC) |
44 : | glk | 781 | ============================== |
45 : | |||
46 : | glk | 785 | determinant ("det") for tensor[3,3] |
47 : | |||
48 : | Decide if we want to allow redefinitions of variables | ||
49 : | (as in vr-lite-cam.diderot) | ||
50 : | |||
51 : | extend norm (|exp|) to all tensor types | ||
52 : | |||
53 : | extend normalize to all tensor types | ||
54 : | |||
55 : | glk | 781 | vector fields: convolution on vector images |
56 : | |||
57 : | jhr | 788 | expand trace in mid to low translation |
58 : | |||
59 : | value-numbering optimization | ||
60 : | |||
61 : | Add type aliases for color types | ||
62 : | rgb = real{3} | ||
63 : | rgba = real{4} | ||
64 : | |||
65 : | glk | 781 | ============================== |
66 : | MEDIUM TERM ================== (needed for streamlines & tractography) | ||
67 : | ============================== | ||
68 : | |||
69 : | ability to emit/track/record variables into dynamically re-sized | ||
70 : | runtime buffer | ||
71 : | |||
72 : | evals & evecs for symmetric tensor[3,3] | ||
73 : | |||
74 : | tensor fields: convolution on general tensor images | ||
75 : | |||
76 : | ============================== | ||
77 : | other MEDIUM TERM ============ (needed for particles) | ||
78 : | ============================== | ||
79 : | |||
80 : | run-time birth and death of strands | ||
81 : | |||
82 : | "initially" supports lists | ||
83 : | |||
84 : | "initially" supports lists of positions output from | ||
85 : | different initalization Diderot program | ||
86 : | |||
87 : | spatial data structure that permits strands' queries of neighbors | ||
88 : | |||
89 : | jhr | 784 | proper handling of stabilize method |
90 : | |||
91 : | jhr | 796 | Add support for code like |
92 : | |||
93 : | (F1 if x else F2)@pos | ||
94 : | |||
95 : | This will require duplication of the continuation of the conditional (but we should only | ||
96 : | duplicate over the live-range of the result of the conditional. | ||
97 : | |||
98 : | glk | 781 | ============================== |
99 : | LONG TERM ==================== | ||
100 : | ============================== | ||
101 : | |||
102 : | jhr | 796 | Better handling of variables that determines the scope of a variable based on its actual use, |
103 : | instead of where the user defined it. So, for example, we should lift strand-invariant variables | ||
104 : | to global scope. Also prune out useless variables, which should include field variables after the | ||
105 : | translation to mid-il. | ||
106 : | |||
107 : | glk | 781 | co- vs contra- index distinction |
108 : | |||
109 : | glk | 783 | add ":" for tensor dot product (contracts out two indices |
110 : | instead of one like •), valid for all pairs of tensors with | ||
111 : | at least two indices | ||
112 : | |||
113 : | glk | 781 | some indication of tensor symmetry |
114 : | (have to identify the group of index permutations that are symmetries) | ||
115 : | |||
116 : | dot works on all tensors | ||
117 : | |||
118 : | outer works on all tensors | ||
119 : | |||
120 : | Einstein summation notation | ||
121 : | |||
122 : | "tensor comprehension" (like list comprehension) | ||
123 : | jhr | 784 | |
124 : | ====================== | ||
125 : | BUGS ================= | ||
126 : | ====================== | ||
127 : | |||
128 : | test/mip-cam.diderot: | ||
129 : | // generated C code looks like "(float)p_ui_0--0.5e0f" | ||
130 : | //real rayU = 2.0*camUmax*(real(ui) - -0.5)/real(imgResU) - camUmax; | ||
131 : | |||
132 : | test/vr-kcomp.diderot: | ||
133 : | // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ... | ||
134 : | |||
135 : | test/zslice2.diderot: | ||
136 : | // but is this not valid syntax for creating field in one shot? | ||
137 : | //field#2(3)[] F = (load("../data/zimg112.nrrd")) ⊛ bspln3; | ||
138 : | // It is valid syntax, but there is a bug in the conversion from HighIL to MidIL | ||
139 : | |||
140 : | test/zslice2.diderot: | ||
141 : | // HEY (bug) bspln5 leads to problems ... | ||
142 : | // uncaught exception Size [size] | ||
143 : | // raised at c-target/c-target.sml:47.15-47.19 | ||
144 : | //field#4(3)[] F = img ⊛ bspln5; | ||
145 : | |||
146 : |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |