27 |
|
|
28 |
Allow ".ddro" file extensions in addition to ".diderot" |
Allow ".ddro" file extensions in addition to ".diderot" |
29 |
|
|
30 |
Be able to output values of type tensor[2,2] and tensor[3,3] |
Be able to output values of type tensor[2,2] and tensor[3,3]; |
31 |
(currently only scalars & vectors) |
(currently only scalars & vectors). Want to add some regression tests |
32 |
|
based on this and currently can't |
33 |
|
|
34 |
[GLK:1] Add a clamp function, which takes three arguments; either |
[GLK:1] Add a clamp function, which takes three arguments; either |
35 |
three scalars: |
three scalars: |
215 |
field#0(2)[] F = lambda([x,y], Ft([x,y,42.0])) // restriction to time=42.0 |
field#0(2)[] F = lambda([x,y], Ft([x,y,42.0])) // restriction to time=42.0 |
216 |
vec2 grad = ∇F([x,y]); // 2D gradient |
vec2 grad = ∇F([x,y]); // 2D gradient |
217 |
|
|
218 |
|
Tensors of order 3 (e.g. gradients of diffusion tensor fields, or |
219 |
|
hessians of vector fields) and order 4 (e.g. Hessians of diffusion |
220 |
|
tensor fields). |
221 |
|
|
222 |
representation of tensor symmetry |
representation of tensor symmetry |
223 |
(have to identify the group of index permutations that are symmetries) |
(have to identify the group of index permutations that are symmetries) |
224 |
|
|
226 |
|
|
227 |
outer works on all tensors |
outer works on all tensors |
228 |
|
|
229 |
|
Help for debugging Diderot programs: need to be able to uniquely |
230 |
|
identify strands, and for particular strands that are known to behave |
231 |
|
badly, do something like printf or other logging of their computations |
232 |
|
and updates. |
233 |
|
|
234 |
|
Permit writing dimensionally general code: Have some statement of the |
235 |
|
dimension of the world "W" (or have it be learned from one particular |
236 |
|
field of interest), and then able to write "vec" instead of |
237 |
|
"vec2/vec3", and perhaps "tensor[W,W]" instead of |
238 |
|
"tensor[2,2]/tensor[3,3]" |
239 |
|
|
240 |
|
Traits: all things things that have boilerplate code (especially |
241 |
|
volume rendering) should be expressed in terms of the unique |
242 |
|
computational core. Different kinds of streamline/tractography |
243 |
|
computation will be another example, as well as particle systems. |
244 |
|
|
245 |
Einstein summation notation |
Einstein summation notation |
246 |
|
|
247 |
"tensor comprehension" (like list comprehension) |
"tensor comprehension" (like list comprehension) |
248 |
|
|
249 |
|
Fields coming from different sources of data: |
250 |
|
* triangular or tetrahedral meshes over 2D or 3D domains (of the |
251 |
|
source produced by finite-element codes; these will come with their |
252 |
|
own specialized kinds of reconstruction kernels, called "basis |
253 |
|
functions" in this context) |
254 |
|
* Large point clouds, with some radial basis function around each point, |
255 |
|
which will be tuned by parameters of the point (at least one parameter |
256 |
|
giving some notion of radius) |
257 |
|
|
258 |
====================== |
====================== |
259 |
BUGS ================= |
BUGS ================= |
260 |
====================== |
====================== |