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 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