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

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