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

SCM Repository

[diderot] View of /trunk/doc/report/basis.tex
ViewVC logotype

View of /trunk/doc/report/basis.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1247 - (download) (as text) (annotate)
Wed May 18 21:27:46 2011 UTC (8 years, 2 months ago) by jhr
File size: 3898 byte(s)
  Update language description
%!TEX root = report.tex
%
\chapter{The Diderot Basis Environment}
\label{chap:basis}

% polymorphic function 
\newcommand{\PFNSPEC}[4]{\item[\normalfont{$\mathtt{#1} : (#2) #3 \rightarrow #4$}]\mbox{}\\}
\newcommand{\FNSPEC}[3]{\item[\normalfont{$\mathtt{#1} : #2 \rightarrow #3$}]\mbox{}\\}
\newcommand{\imageTy}[2]{\mkw{image}(#1)[#2]}
\newcommand{\kernelTy}[2]{\mkw{kernel\#}#2}
\newcommand{\fieldTy}[3]{\mkw{field\#}#1(#2)[#3]}
\newcommand{\tensorTy}[1]{\mkw{tensor}[#1]}
\newcommand{\seqTy}[2]{#1\mkw{\{}#2\mkw{\}}}

\section{Overloaded operators}

\section{Other operators}

\section{Functions}
\begin{description}
  \FNSPEC{atan2}{(\mkw{real},\,\mkw{real})}{\mkw{real}}
    returns the principal value of the arc tangent of $\frac{y}{x}$,
    using the signs of both arguments to determine the quadrant of the return
    value.
  \FNSPEC{CL}{\tensorTy{3,3}}{\mkw{real}}
  \PFNSPEC{convolve}{d,k,\sigma}{(\imageTy{d}{\sigma},\,\kernelTy{k})}{\fieldTy{k}{d}{\sigma}}
  \FNSPEC{cos}{\mkw{real}}{\mkw{real}}
    returns the cosine of its argument (measured in radians).
  \PFNSPEC{dot}{d}{(\tensorTy{d},\, \tensorTy{d})}{\mkw{real}}
    returns the dot product of two vectors.
  \FNSPEC{evals}{\tensorTy{3,3}}{\seqTy{\mkw{vec3}}{3}}
  \FNSPEC{evecs}{\tensorTy{3,3}}{\seqTy{\mkw{real}}{3}}
  \PFNSPEC{inside}{k,d,\sigma}{(\fieldTy{k}{d}{\sigma},\,\mkw{tensor}[d])}{\mkw{bool}}
  \PFNSPEC{load}{d,\sigma}{\mkw{string}}{\imageTy{d}{\sigma}}
    loads the named image file, which should be a Nrrd file.
    Note that this function may only be used in the global initialization part of a Diderot
    program.
  \PFNSPEC{lerp}{\sigma}{(\tensorTy{\sigma},\,\tensorTy{\sigma},\,\mkw{real})}{\tensorTy{\sigma}}
    linear interpolationover the interval $[0,1]$:
    \begin{displaymath}
      \mathtt{lerp} (x, y, t) = x(1-t) + a
    \end{displaymath}%
  \PFNSPEC{lerp}{\sigma}{(\tensorTy{\sigma},\,\tensorTy{\sigma},\,\mkw{real},\,\mkw{real},\,\mkw{real})}{\tensorTy{\sigma}}
    linear interpolation over an arbitrary range:
    \begin{displaymath}
      \mathtt{lerp} (x, y, \mathit{lo}, t, \mathit{hi}) =
        \mathtt{lerp}\left({x, y, \frac{t - \mathit{lo}}{\mathit{hi} - \mathit{lo}}}\right)
    \end{displaymath}%
  \FNSPEC{max}{(\mkw{real},\,\mkw{real})}{\mkw{real}}
    returns the minimum of its two arguments.
  \FNSPEC{min}{(\mkw{real},\,\mkw{real})}{\mkw{real}}
    returns the maximum of its two arguments.
  \PFNSPEC{modulate}{d}{(\mkw{tensor}[d],\,\mkw{tensor}[d])}{\mkw{tensor}[d]}
    component-wise multiplication of two vectors.
  \PFNSPEC{normalize}{d}{\mkw{tensor}[d]}{\mkw{tensor}[d]}
    normalize a vector to a unit vector.
  \FNSPEC{pow}{(\mkw{real},\,\mkw{real})}{\mkw{real}}
    returns the first argument raised to the power of the second argument.
  \PFNSPEC{principleEvec}{d}{\mkw{tensor}[d,d]}{\mkw{tensor}[d]}
  \FNSPEC{sin}{\mkw{real}}{\mkw{real}}
    returns the sine of its argument (measured in radians).
  \FNSPEC{sqrt}{\mkw{real}}{\mkw{real}}
    returns the square root of its argument.
  \FNSPEC{tan}{\mkw{real}}{\mkw{real}}
    returns the tangent of its argument (measured in radians).
  \PFNSPEC{trace}{d}{\tensorTy{d,d}}{\mkw{real}}
    returns the \emph{trace} of a square matrix.
\end{description}%

\section{Kernels}
Diderot knows about a number of standard convolution kernels, which are described in the
following table:
\begin{center}
  \begin{tabular}{r@{ \texttt{:} }lp{3.5in}}
    \multicolumn{2}{c}{\textbf{Specification}} & \textbf{Description} \\ \hline
    \texttt{bspln3} & \kw{kernel\#}\texttt{2} & cubic bspline reconstruction (does not interpolate) \\
    \texttt{bspln5} & \kw{kernel\#}\texttt{4} & quintic bspline reconstruction (does not interpolate) \\
    \texttt{ctmr} & \kw{kernel\#}\texttt{1} & Catmull-Rom interpolation \\
    \texttt{tent} & \kw{kernel\#}\texttt{0} & linear interpolation \\ \hline
  \end{tabular}%
\end{center}%

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