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 784, Fri Apr 8 01:56:35 2011 UTC revision 818, Wed Apr 13 18:38:55 2011 UTC
# Line 2  Line 2
2  SHORT TERM =============  (for curvature-based VR)  SHORT TERM =============  (for curvature-based VR)
3  ========================  ========================
4
5    want: warnings when D (and likely I) is declared as a
6    variable name (now get confusing error messages now)
7
8    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    IL support for higher-order tensor values (matrices, etc).
13        tensor construction [DONE]
14        tensor indexing [DONE]
15        tensor slicing
16        verify that hessians work correctly
17
18  Outer products  Outer products
19      syntax [DONE]      syntax [DONE]
20      typechecking      typechecking
21      IL and codegen      IL and codegen
22
23  Add M dot v, v dot M, and M dot N  Add M dot v, v dot M, and M dot N [DONE]
24
25  Identity matrix [DONE up to code generation]  Identity matrix [DONE up to code generation]
26
determinant ("det") for tensor[3,3]

27  trace [DONE]  trace [DONE]
28
29  expand trace in mid to low translation  extend norm (|exp|) to tensor[3,3]

extend norm (|exp|) to all tensor types

extend normalize to all tensor types
30
31  Use ∇⊗ etc syntax  Use ∇⊗ etc. syntax
32      syntax [DONE]      syntax [DONE]
33      typechecking      typechecking
34      IL and codegen      IL and codegen
# Line 32  Line 39
39          value construction: '{' e1 ',' … ',' en '}'          value construction: '{' e1 ',' … ',' en '}'
40          indexing: e '{' e '}'          indexing: e '{' e '}'
41
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}

Decide if we want to allow redefinitions of variables
(as in vr-lite-cam.diderot)

42  Infix dot product and cross product [DONE]  Infix dot product and cross product [DONE]
43
44  lerp on scalars and vectors [DONE]  lerp on scalars and vectors [DONE]
45
46  ==============================  ==============================
47  other SHORT TERM =============  (needed for LIC)  other SHORT TERM =============  (including needed for LIC)
48  ==============================  ==============================
49
50    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  vector fields: convolution on vector images  vector fields: convolution on vector images
60
61    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  ==============================  ==============================
70  MEDIUM TERM ================== (needed for streamlines & tractography)  MEDIUM TERM ================== (needed for streamlines & tractography)
71  ==============================  ==============================
# Line 80  Line 92
92
93  proper handling of stabilize method  proper handling of stabilize method
94
95    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    ==============================
103    other MEDIUM TERM ============
104    ==============================
105
106    support fog Python interop and GUI
107
108  ==============================  ==============================
109  LONG TERM ====================  LONG TERM ====================
110  ==============================  ==============================
111
112    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  co- vs contra- index distinction  co- vs contra- index distinction
118
119  add ":" for tensor dot product (contracts out two indices  add ":" for tensor dot product (contracts out two indices
# Line 101  Line 131
131
132  "tensor comprehension" (like list comprehension)  "tensor comprehension" (like list comprehension)
133
134    Python/ctypes interface to run-timez
135
136  ======================  ======================
137  BUGS =================  BUGS =================
138  ======================  ======================
# Line 112  Line 144
144  test/vr-kcomp.diderot:  test/vr-kcomp.diderot:
145      // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ...      // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ...
146
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]; ...

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

Legend:
 Removed from v.784 changed lines Added in v.818