Home My Page Projects Code Snippets Project Openings diderot

# SCM Repository

[diderot] Diff of /branches/pure-cfg/TODO
 [diderot] / branches / pure-cfg / TODO

# Diff of /branches/pure-cfg/TODO

revision 785, Fri Apr 8 03:11:37 2011 UTC revision 824, Thu Apr 14 15:54:24 2011 UTC
# Line 2  Line 2
2  SHORT TERM =============  (for curvature-based VR)  SHORT TERM =============  (for curvature-based VR)
3  ========================  ========================
4
5  Outer products  For RGB color output of 2D transfer function (indexed by
6      syntax [DONE]  kappa1,kappa2), or for a 1D transfer function, will need
7      typechecking  something akin to convolution on vector images
8      IL and codegen
9    IL support for higher-order tensor values (matrices, etc).
10        tensor construction [DONE]
11        tensor indexing [DONE]
12        tensor slicing
13        verify that hessians work correctly
14
15    Outer products [DONE]
16
17  Add M dot v, v dot M, and M dot N  Add M dot v, v dot M, and M dot N [DONE]
18
19  Identity matrix [DONE up to code generation]  Identity matrix [DONE up to code generation]
20
21  trace [DONE]  Zero tensor [DONE up to code generation]
22
23  expand trace in mid to low translation  trace [DONE]
24
25  extend norm (|exp|) to tensor[3,3]  extend norm (|exp|) to tensor[3,3]
26
27  Use ∇⊗ etc syntax  extend implementation of scaling to work on higher-order tensors (it currently
28    just works on vectors)
29
30    Use ∇⊗ etc. syntax
31      syntax [DONE]      syntax [DONE]
32      typechecking      typechecking
33      IL and codegen      IL and codegen
# Line 28  Line 38
38          value construction: '{' e1 ',' … ',' en '}'          value construction: '{' e1 ',' … ',' en '}'
39          indexing: e '{' e '}'          indexing: e '{' e '}'
40
IL support for higher-order tensor values (matrices, etc).
tensor construction
tensor indexing and slicing
verify that hessians work correctly

Add type aliases for color types
rgb = real{3}
rgba = real{4}

41  Infix dot product and cross product [DONE]  Infix dot product and cross product [DONE]
42
43  lerp on scalars and vectors [DONE]  lerp on scalars and vectors [DONE]
44
45    Infix "^" operator for pow() [DONE]
46
47  ==============================  ==============================
48  other SHORT TERM =============  (including needed for LIC)  other SHORT TERM =============  (including needed for LIC)
49  ==============================  ==============================
# Line 56  Line 59
59
60  vector fields: convolution on vector images  vector fields: convolution on vector images
61
62    expand trace in mid to low translation
63
64    value-numbering optimization
65
66    Add type aliases for color types
67        rgb = real{3}
68        rgba = real{4}
69
70  ==============================  ==============================
71  MEDIUM TERM ================== (needed for streamlines & tractography)  MEDIUM TERM ================== (needed for streamlines & tractography)
72  ==============================  ==============================
# Line 82  Line 93
93
94  proper handling of stabilize method  proper handling of stabilize method
95
96    Add support for code like
97
98            (F1 if x else F2)@pos
99
100    This will require duplication of the continuation of the conditional (but we should only
101    duplicate over the live-range of the result of the conditional.
102
103    ==============================
104    other MEDIUM TERM ============
105    ==============================
106
107    want: warnings when D (and likely I) is declared as a
108    variable name (now get confusing error messages now)
109
110    support for Python interop and GUI
111
112  ==============================  ==============================
113  LONG TERM ====================  LONG TERM ====================
114  ==============================  ==============================
115
116    Better handling of variables that determines the scope of a variable based on its actual use,
117    instead of where the user defined it.  So, for example, we should lift strand-invariant variables
118    to global scope.  Also prune out useless variables, which should include field variables after the
119    translation to mid-il.
120
121  co- vs contra- index distinction  co- vs contra- index distinction
122
123  add ":" for tensor dot product (contracts out two indices  add ":" for tensor dot product (contracts out two indices
# Line 103  Line 135
135
136  "tensor comprehension" (like list comprehension)  "tensor comprehension" (like list comprehension)
137
138    Python/ctypes interface to run-timez
139
140  ======================  ======================
141  BUGS =================  BUGS =================
142  ======================  ======================
# Line 114  Line 148
148  test/vr-kcomp.diderot:  test/vr-kcomp.diderot:
149      // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ...      // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ...
150
test/vr-lite-cam.diderot:
// HEY (BUG): these:
//   vec3 lightVspDir = [1.0, -0.0, 0.0];
//   vec3 lightVspDir = [1.0, 0.0, -0.0];
// work okay but this:
//   vec3 lightVspDir = [1.0, 0.0, 0.0]; ...

151  test/zslice2.diderot:  test/zslice2.diderot:
152  // but is this not valid syntax for creating field in one shot?  // but is this not valid syntax for creating field in one shot?
153  //field#2(3)[] F = (load("../data/zimg112.nrrd")) ⊛ bspln3;  //field#2(3)[] F = (load("../data/zimg112.nrrd")) ⊛ bspln3;

Legend:
 Removed from v.785 changed lines Added in v.824