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