Home My Page Projects Code Snippets Project Openings diderot

# SCM Repository

[diderot] Annotation of /branches/vis12/doc/report/basis.tex
 [diderot] / branches / vis12 / doc / report / basis.tex

# Annotation of /branches/vis12/doc/report/basis.tex

 1 : jhr 326 %!TEX root = report.tex 2 : % 3 : \chapter{The Diderot Basis Environment} 4 : \label{chap:basis} 5 : 6 : jhr 1116 % polymorphic function 7 : jhr 329 \newcommand{\PFNSPEC}[4]{\item[\normalfont{$\mathtt{#1} : (#2) #3 \rightarrow #4$}]\mbox{}\\} 8 : \newcommand{\FNSPEC}[3]{\item[\normalfont{$\mathtt{#1} : #2 \rightarrow #3$}]\mbox{}\\} 9 : jhr 327 \newcommand{\imageTy}[2]{\mkw{image}(#1)[#2]} 10 : \newcommand{\kernelTy}[2]{\mkw{kernel\#}#2} 11 : \newcommand{\fieldTy}[3]{\mkw{field\#}#1(#2)[#3]} 12 : jhr 1116 \newcommand{\tensorTy}[1]{\mkw{tensor}[#1]} 13 : \newcommand{\seqTy}[2]{#1\mkw{\{}#2\mkw{\}}} 14 : jhr 327 15 : jhr 326 \section{Overloaded operators} 16 : 17 : \section{Other operators} 18 : 19 : \section{Functions} 20 : \begin{description} 21 : jhr 1116 \FNSPEC{atan2}{(\mkw{real},\,\mkw{real})}{\mkw{real}} 22 : returns the principal value of the arc tangent of $\frac{y}{x}$, 23 : using the signs of both arguments to determine the quadrant of the return 24 : value. 25 : \FNSPEC{CL}{\tensorTy{3,3}}{\mkw{real}} 26 : jhr 327 \PFNSPEC{convolve}{d,k,\sigma}{(\imageTy{d}{\sigma},\,\kernelTy{k})}{\fieldTy{k}{d}{\sigma}} 27 : \FNSPEC{cos}{\mkw{real}}{\mkw{real}} 28 : jhr 1116 returns the cosine of its argument (measured in radians). 29 : \PFNSPEC{dot}{d}{(\tensorTy{d},\, \tensorTy{d})}{\mkw{real}} 30 : returns the dot product of two vectors. 31 : \FNSPEC{evals}{\tensorTy{3,3}}{\seqTy{\mkw{vec3}}{3}} 32 : \FNSPEC{evecs}{\tensorTy{3,3}}{\seqTy{\mkw{real}}{3}} 33 : jhr 327 \PFNSPEC{inside}{k,d,\sigma}{(\fieldTy{k}{d}{\sigma},\,\mkw{tensor}[d])}{\mkw{bool}} 34 : \PFNSPEC{load}{d,\sigma}{\mkw{string}}{\imageTy{d}{\sigma}} 35 : jhr 329 loads the named image file, which should be a Nrrd file. 36 : Note that this function may only be used in the global initialization part of a Diderot 37 : program. 38 : jhr 1247 \PFNSPEC{lerp}{\sigma}{(\tensorTy{\sigma},\,\tensorTy{\sigma},\,\mkw{real})}{\tensorTy{\sigma}} 39 : linear interpolationover the interval $[0,1]$: 40 : \begin{displaymath} 41 : \mathtt{lerp} (x, y, t) = x(1-t) + a 42 : \end{displaymath}% 43 : \PFNSPEC{lerp}{\sigma}{(\tensorTy{\sigma},\,\tensorTy{\sigma},\,\mkw{real},\,\mkw{real},\,\mkw{real})}{\tensorTy{\sigma}} 44 : linear interpolation over an arbitrary range: 45 : \begin{displaymath} 46 : \mathtt{lerp} (x, y, \mathit{lo}, t, \mathit{hi}) = 47 : \mathtt{lerp}\left({x, y, \frac{t - \mathit{lo}}{\mathit{hi} - \mathit{lo}}}\right) 48 : \end{displaymath}% 49 : jhr 327 \FNSPEC{max}{(\mkw{real},\,\mkw{real})}{\mkw{real}} 50 : jhr 326 returns the minimum of its two arguments. 51 : jhr 327 \FNSPEC{min}{(\mkw{real},\,\mkw{real})}{\mkw{real}} 52 : jhr 326 returns the maximum of its two arguments. 53 : jhr 1247 \PFNSPEC{modulate}{d}{(\mkw{tensor}[d],\,\mkw{tensor}[d])}{\mkw{tensor}[d]} 54 : component-wise multiplication of two vectors. 55 : \PFNSPEC{normalize}{d}{\mkw{tensor}[d]}{\mkw{tensor}[d]} 56 : normalize a vector to a unit vector. 57 : jhr 327 \FNSPEC{pow}{(\mkw{real},\,\mkw{real})}{\mkw{real}} 58 : jhr 326 returns the first argument raised to the power of the second argument. 59 : jhr 327 \PFNSPEC{principleEvec}{d}{\mkw{tensor}[d,d]}{\mkw{tensor}[d]} 60 : \FNSPEC{sin}{\mkw{real}}{\mkw{real}} 61 : jhr 1116 returns the sine of its argument (measured in radians). 62 : \FNSPEC{sqrt}{\mkw{real}}{\mkw{real}} 63 : returns the square root of its argument. 64 : \FNSPEC{tan}{\mkw{real}}{\mkw{real}} 65 : returns the tangent of its argument (measured in radians). 66 : \PFNSPEC{trace}{d}{\tensorTy{d,d}}{\mkw{real}} 67 : returns the \emph{trace} of a square matrix. 68 : jhr 326 \end{description}% 69 : 70 : \section{Kernels} 71 : Diderot knows about a number of standard convolution kernels, which are described in the 72 : following table: 73 : \begin{center} 74 : \begin{tabular}{r@{ \texttt{:} }lp{3.5in}} 75 : \multicolumn{2}{c}{\textbf{Specification}} & \textbf{Description} \\ \hline 76 : \texttt{bspln3} & \kw{kernel\#}\texttt{2} & cubic bspline reconstruction (does not interpolate) \\ 77 : \texttt{bspln5} & \kw{kernel\#}\texttt{4} & quintic bspline reconstruction (does not interpolate) \\ 78 : jhr 356 \texttt{ctmr} & \kw{kernel\#}\texttt{1} & Catmull-Rom interpolation \\ 79 : jhr 326 \texttt{tent} & \kw{kernel\#}\texttt{0} & linear interpolation \\ \hline 80 : \end{tabular}% 81 : \end{center}%