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