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