Home My Page Projects Code Snippets Project Openings diderot
 Summary Activity Tracker Tasks SCM

# SCM Repository

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

# Annotation of /branches/pure-cfg/TODO

Revision 927 - (view) (download)

 1 : glk 781 ======================== 2 : SHORT TERM ============= (for curvature-based VR) 3 : ======================== 4 : 5 : jhr 788 IL support for higher-order tensor values (matrices, etc). 6 : jhr 803 tensor construction [DONE] 7 : tensor indexing [DONE] 8 : tensor slicing 9 : jhr 853 verify that hessians work correctly [DONE] 10 : jhr 788 11 : jhr 821 Outer products [DONE] 12 : jhr 763 13 : jhr 813 Add M dot v, v dot M, and M dot N [DONE] 14 : jhr 763 15 : jhr 846 Identity matrix [DONE] 16 : jhr 763 17 : jhr 846 Zero tensor [DONE] 18 : jhr 822 19 : jhr 763 trace [DONE] 20 : 21 : jhr 846 extend norm (|exp|) to tensor[3,3] [DONE] 22 : jhr 763 23 : jhr 846 Matrix addition, subtraction, and scaling [DONE] 24 : jhr 824 25 : jhr 788 Use ∇⊗ etc. syntax 26 : jhr 763 syntax [DONE] 27 : typechecking 28 : IL and codegen 29 : 30 : Add sequence types 31 : syntax 32 : types: ty '{' INT '}' 33 : value construction: '{' e1 ',' … ',' en '}' 34 : indexing: e '{' e '}' 35 : 36 : jhr 784 Infix dot product and cross product [DONE] 37 : glk 781 38 : jhr 784 lerp on scalars and vectors [DONE] 39 : 40 : jhr 824 Infix "^" operator for pow() [DONE] 41 : 42 : jhr 897 Code generation support for 1D image data, such as RGBA transfer functions [DONE] 43 : jhr 853 44 : glk 781 ============================== 45 : glk 785 other SHORT TERM ============= (including needed for LIC) 46 : glk 781 ============================== 47 : 48 : glk 927 test/uninit.diderot: 49 : documents need for better compiler error messages when out variables 50 : are not initialized; the current messages are very cryptic 51 : 52 : glk 785 determinant ("det") for tensor[3,3] 53 : 54 : jhr 897 extend norm (|exp|) to all tensor types [DONE for vectors and matrices] 55 : glk 785 56 : jhr 788 expand trace in mid to low translation 57 : 58 : value-numbering optimization 59 : 60 : Add type aliases for color types 61 : rgb = real{3} 62 : rgba = real{4} 63 : 64 : glk 781 ============================== 65 : glk 891 MEDIUM TERM ================== (including needed for streamlines & tractography) 66 : glk 781 ============================== 67 : 68 : ability to emit/track/record variables into dynamically re-sized 69 : runtime buffer 70 : 71 : evals & evecs for symmetric tensor[3,3] 72 : 73 : tensor fields: convolution on general tensor images 74 : 75 : glk 891 Use of Teem's "hest" command-line parser for getting 76 : any input variables that are not defined in the source file 77 : 78 : Save Diderot output to nrrd, instead of "mip.txt" 79 : For grid of strands, save to similarly-shaped array 80 : For list of strands, save to long 1-D (or 2-D for non-scalar output) list 81 : For ragged things (like tractography output), will need to save both 82 : complete list of values, as well as list of start indices and lengths 83 : to index into complete list 84 : 85 : glk 781 ============================== 86 : other MEDIUM TERM ============ (needed for particles) 87 : ============================== 88 : 89 : run-time birth and death of strands 90 : 91 : "initially" supports lists 92 : 93 : "initially" supports lists of positions output from 94 : different initalization Diderot program 95 : 96 : spatial data structure that permits strands' queries of neighbors 97 : 98 : jhr 784 proper handling of stabilize method 99 : 100 : glk 891 test/vr-kcomp2.diderot: Add support for code like 101 : jhr 796 102 : (F1 if x else F2)@pos 103 : 104 : This will require duplication of the continuation of the conditional (but we should only 105 : duplicate over the live-range of the result of the conditional. 106 : 107 : glk 781 ============================== 108 : jhr 797 other MEDIUM TERM ============ 109 : ============================== 110 : 111 : glk 927 want: warnings when "D" (reserved for differentiation) is declared as 112 : a variable name (get confusing error messages now) 113 : jhr 797 114 : jhr 824 support for Python interop and GUI 115 : 116 : jhr 797 ============================== 117 : glk 781 LONG TERM ==================== 118 : ============================== 119 : 120 : glk 927 Better handling of variables that determines the scope of a variable 121 : based on its actual use, instead of where the user defined it. So, 122 : for example, we should lift strand-invariant variables to global 123 : scope. Also prune out useless variables, which should include field 124 : variables after the translation to mid-il. 125 : jhr 796 126 : glk 781 co- vs contra- index distinction 127 : 128 : glk 783 add ":" for tensor dot product (contracts out two indices 129 : instead of one like •), valid for all pairs of tensors with 130 : at least two indices 131 : 132 : glk 781 some indication of tensor symmetry 133 : (have to identify the group of index permutations that are symmetries) 134 : 135 : dot works on all tensors 136 : 137 : outer works on all tensors 138 : 139 : Einstein summation notation 140 : 141 : "tensor comprehension" (like list comprehension) 142 : jhr 784 143 : glk 818 Python/ctypes interface to run-timez 144 : 145 : jhr 784 ====================== 146 : BUGS ================= 147 : ====================== 148 : 149 : glk 900 test/abexit.diderot 150 : // HEY (BUG): this program can't run; this is the info from gdb (below) 151 : // NOTE: if you remove the "inside" test; then it does run w/out problems 152 : // (gdb) run 153 : // Starting program: /Users/gk/diderot/diderot/pure-cfg/test/abexit 154 : // warning: posix_spawn failed, trying execvp, error: 86 155 : // Reading symbols for shared libraries ++. done 156 : // initializing globals ... 157 : // 158 : // Program exited with code 01. 159 : // (gdb) 160 : 161 : jhr 784 test/mip-cam.diderot: 162 : // generated C code looks like "(float)p_ui_0--0.5e0f" 163 : //real rayU = 2.0*camUmax*(real(ui) - -0.5)/real(imgResU) - camUmax; 164 : 165 : test/vr-kcomp.diderot: 166 : // HEY (scoping BUG): the strand parameters (e.g. ui, vi) ... 167 : 168 : test/zslice2.diderot: 169 : // but is this not valid syntax for creating field in one shot? 170 : //field#2(3)[] F = (load("../data/zimg112.nrrd")) ⊛ bspln3; 171 : // It is valid syntax, but there is a bug in the conversion from HighIL to MidIL 172 : 173 : test/zslice2.diderot: 174 : // HEY (bug) bspln5 leads to problems ... 175 : // uncaught exception Size [size] 176 : // raised at c-target/c-target.sml:47.15-47.19 177 : //field#4(3)[] F = img ⊛ bspln5; 178 : 179 :

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