asa005, a library which evaluates the lower tail of the noncentral Student’s T distribution, by BE Cooper. This is a version of Applied Statistics Algorithm 5;

asa006, a library which computes the Cholesky factor of a positive definite symmetric matrix, by Michael Healy; This is a version of Applied Statistics Algorithm 6;

asa007, a library which computes the inverse of a positive definite symmetric matrix, by Michael Healy; This is a version of Applied Statistics Algorithm 7.

asa032, a library which evaluates the incomplete Gamma function, by G Bhattacharjee. This is a version of Applied Statistics Algorithm 32;

asa047, a library which minimizes a scalar function of several variables using the Nelder-Mead algorithm, by R ONeill. This is a version of Applied Statistics Algorithm 47;

asa053, a library which produces sample matrices from the Wishart distribution, by William Smith and Ronald Hocking. This is a version of Applied Statistics Algorithm 53.

asa058, a library which carries out clustering of data, by David Sparks. This is a version of Applied Statistics Algorithm 58;

asa063, a library which evaluates the incomplete Beta function, by KL Majumder and G Bhattacharjee. This is a version of Applied Statistics Algorithm 63;

asa066, a library which computes the cumulative density function (CDF) of the standard normal distribution, by David Hill. This is a version of Applied Statistics Algorithm 66;

asa076, a library which evaluates Owen’s T function, by Young and Minder. This is a version of Applied Statistics Algorithm 76;

asa091, a library which computes the percentage points of the Chi-square distribution, by Best and Roberts. This is a version of Applied Statistics Algorithm 91;

asa103, a library which evaluates the digamma or psi function, by Jose Bernardo. This is a version of Applied Statistics Algorithm 103;

asa109 a library which inverts the incomplete Beta function, by Cran, Martin and Thomas. This is a version of Applied Statistics Algorithm 109;

asa111 a library which evaluates the percentage points of the normal distribution, by Beasley and Springer. This is a version of Applied Statistics Algorithm 111;

asa113 a library which clusters data using a transfer and swap algorithm, by Banfield and Bassill; This is a version of Applied Statistics Algorithm 113;

asa121, a library which evaluates the trigamma function, by BE Schneider. This is a version of Applied Statistics Algorithm 121;

asa136, a library which implements a clustering algorithm, by Hartigan and Wong. This is a version of Applied Statistics Algorithm 136;

asa144, a library which randomly generates tables with given row and column sums, by James Boyett. This is a version of Applied Statistics Algorithm 144;

asa147, a library which evaluates the incomplete Gamma function, by Chi Leung Lau. This is a version of Applied Statistics Algorithm 147;

asa152, a library which evaluates the probability density function (PDF) and cumulative density function (CDF) associated with the hypergeometric distribution, by Richard Lund; This is a version of Applied Statistics Algorithm 152;

asa159, a library which computes a random table with given row and column sums, by Michael Patefield; This is a version of Applied Statistics Algorithm 159;

asa172, a library which generates all M dimensional indices in a given range, simulating the behavior of an arbitrary number of nested loops, by OFlaherty and MacKenzie; this is a version of Applied Statistics Algorithm 172;

asa183, a library which implements a random number generator (RNG), by Wichman and Hill; this is a version of Applied Statistics Algorithm 183;

asa226, a library which evaluates the noncentral incomplete Beta function, by Russell Lenth; this is a version of Applied Statistics Algorithm 226;

asa239, a library which evaluates the incomplete Gamma function, by Shea; this is a version of Applied Statistics Algorithm 239;

asa241, a library which computes the inverse of the normal cumulative density function (CDF), by Michael Wichura; this is a version of Applied Statistics Algorithm 241;

asa243, a library which evaluates the lower tail of the noncentral Student’s T distribution, by Russell Lenth; this is a version of Applied Statistics Algorithm 243;

asa245, a library which evaluates the logarithm of the Gamma function, by Allan Mcleod; this is a version of Applied Statistics Algorithm 245;

asa266, a library which evaluates various properties of the Dirichlet probability density function (PDF); this is a version of Applied Statistics Algorithm 266;

asa299, a library which computes the lattice points (integer coordinates) in an M dimensional simplex, by Chasalow and Brand; this is a version of Applied Statistics Algorithm 299;

asa310, a library which evaluates the noncentral incomplete Beta function, by Chattamvelli and Shanmugam. This is a version of Applied Statistics Algorithm 310;

asa314, a library which computes the inverse of a matrix whose elements are subject to modulo arithmetic, by Roger Payne. This is a version of Applied Statistics Algorithm 314.

backtrack_binary_rc, a library which carries out a backtrack search for a set of binary decisions, using reverse communication.

ball_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit ball in 3D.

ball_monte_carlo, a library which applies a Monte Carlo method to estimate integrals of a function over the interior of the unit ball in 3D;

barycentric_interp_1d, a library which defines and evaluates the barycentric Lagrange polynomial p(x) which interpolates a set of data, so that p(x(i)) = y(i). The barycentric approach means that very high degree polynomials can safely be used.

birthday_remote, a program which runs a Monte Carlo simulation of the birthday paradox, and includes instructions on how to run the job, via MATLAB’s batch facility, on a remote system such as Virginia Tech’s Ithaca cluster.

bisection_integer, a library which seeks an integer solution to the equation F(X)=0, using bisection within a user-supplied change of sign interval [A,B].

bisection_rc, a library which seeks a solution to the equation F(X)=0 using bisection within a user-supplied change of sign interval [A,B]. The procedure is written using reverse communication.

black_scholes, a library which implements some simple approaches to the Black-Scholes option valuation theory, by Desmond Higham.

blas, a library which contains the Basic Linear Algebra Subprograms (BLAS) for level 1, 2 and 3, for single and double precision, and for real and complex arithmetic.

box_behnken, a library which computes a Box-Behnken design, that is, a set of arguments to sample the behavior of a function of multiple parameters;

box_display, a program which displays a box plot, over integer pairs of data, of a function defined by two formulas.

box_plot, a program which displays a box plot of data that consists of pairs of integers;

brain_sensor_pod, a program which applies the method of Proper Orthogonal Decomposition (POD) to seek underlying patterns in sets of 40 sensor readings of brain activity.

brent, a library which contains routines for finding zeroes or minima of a scalar function of a scalar variable, without the use of derivative information, including a reverse communication option, by Richard Brent.

buckling_spring, a program which plots solutions of the buckling spring equations.

burgers_solution, a library which evaluates an exact solution of the time-dependent 1D viscous Burgers equation.

burgers_steady_viscous, a library which solves the steady (time-independent) viscous Burgers equation using the finite difference method (FDM) applied to the conservative form of the equation, using Newton’s method to solve the resulting nonlinear system.

burgers_time_inviscid, a library which solves the time-dependent inviscid Burgers equation using the finite difference method (FDM), and one of six solution methods selected by the user.

burgers_time_viscous, a library which solves the time-dependent viscous Burgers equation using the finite difference method (FDM) applied to the conservative form of the equation.

bvp4c, programs which illustrate how to use the MATLAB command bvp4c(), which can solve boundary value problems (BVP’s) in one spatial dimension.

cavity_flow_display, a library which displays a single velocity field solution for the driven cavity;

cavity_flow_movie, a library which animates the velocity solutions for the driven cavity;

cc_display, a program which displays the points used in a 2D Clenshaw-Curtis quadrature rule;

cc_project, a library which investigates generalized Clenshaw-Curtis quadrature rules for semi-infinite and infinite intervals, by John Boyd.

ccn_rule, a program which defines a nested Clenshaw Curtis quadrature rule.

ccvt_box, a program which calculates a constrained Centroidal Voronoi Tessellation (CVT) for points constrained to lie in a box, with some points moved to the boundary;

ccvt_reflect, a program which calculates a constrained Centroidal Voronoi Tessellation (CVT) for points constrained to lie in a box, with some points pushed towards the boundary;

cell, a library which defines a cell array, a generalization of an array which can compactly store and retrieve vector or matrix data of varying size, such as the rows of a triangular matrix.

cell_detection_tasks, a program which creates modified versions of a sequence of gray-scale tagged image files (TIF’s) containing images of biological cells; the process of each file is carried out independently, using the task feature of MATLAB’s parallel computing toolbox.

cellular_automaton, a program which demonstrates the 1D Cellular Automaton known as rule #30.

centralize, a library which estimates the centroid and radius of a shape, or a set of data points, in a space of arbitrary dimension.

cg, a library which implements a simple version of the conjugate gradient (CG) method for solving a system of linear equations of the form A*x=b, suitable for situations in which the matrix A is positive definite (only real, positive eigenvalues) and symmetric.

cg_distributed, a program which implements a version of the NAS conjugate gradient (CG) benchmark, using distributed memory.

cg_lab_triangles, a collection of programs associated with a computer lab assignment on computational geometry and triangles;

cg_rc, a library which implements the conjugate gradient (CG) method for solving a positive definite sparse linear system A*x=b, using reverse communication (RC).

chain_letter_tree, a program which analyzes a similarity matrix for 11 versions of a single chain letter and produces a dendrogram or tree diagram that suggests the degrees of relatedness and the evolutionary history of the letters.

chebyshev, a library which computes the Chebyshev interpolant/approximant to a given function over an interval.

chebyshev_interp_1d, a library which determines the combination of Chebyshev polynomials which interpolates a set of data, so that p(x(i)) = y(i).

chebyshev_polynomial, a library which considers the Chebyshev polynomials T(i,x), U(i,x), V(i,x) and W(i,x). Functions are provided to evaluate the polynomials, determine their zeros, produce their polynomial coefficients, produce related quadrature rules, project other functions onto these polynomial bases, and integrate double and triple products of the polynomials.

chebyshev_series, a library which can evaluate a Chebyshev series approximating a function f(x), while efficiently computing one, two or three derivatives of the series, which approximate f'(x), f”(x), and f”'(x), by Manfred Zimmer.

chebyshev1_rule, a program which computes and writes out a Gauss-Chebyshev type 1 quadrature rule of given order.

chebyshev2_rule, a program which computes and writes out a Gauss-Chebyshev type 2 quadrature rule of given order.

color_remote, a program which carries out the color segmentation of an image in parallel, using MATLAB’s spmd facility; this includes instructions on how to run the job, via MATLAB’s batch facility, on a remote system such as Virginia Tech’s ithaca cluster.

colored_noise, a library which generates samples of noise obeying a 1/f^alpha power law.

combination_lock, a program which simulates the process of determining the secret combination of a lock.

compass_search, a library which seeks the minimizer of a scalar function of several variables using compass search, a direct search algorithm that does not use derivatives.

complex_numbers, a program which demonstrates some simple features involved in the use of complex numbers in programming.

complexity, programs which measure the complexity of a few simple algorithms with increasing problem size.

condition, a library which implements methods of computing or estimating the condition number of a matrix.

continuation, a library which implements the continuation method for a simple 2D problem, which involves finding a point on the unit circle, and then finding a sequence of nearby points which trace out the full curve, using only the information available in the implicit definition of the curve from the function f(x,y)=x^2+y^2-1.

contour_gradient, a program which displays contours and gradient vectors for a function f(x,y).

contour_gradient_3d, a program which displays contours and gradient vectors for a function f(x,y) in a 3D display.

contour_sequence4, a program which creates images suitable for animation from one XY file and a sequence of u(x,y) data files;

contrast_spmd, a program which demonstrates spmd parallel programming for image operations; the client reads an image, the workers heighten contrast over portions of it, and the client assembles and displays the results.

contrast2_spmd, a program which demonstrates spmd parallel programming for image operations; it improves on contrast_spmd by allowing the workers to communicate, and so eliminates artificial seams that would otherwise appear in the processed image.

convex_hull, a program which demonstrates the computation of the convex hull of a set of 2D points.

coordinate_search, a program which seeks the minimizer of a scalar function of several variables, by Jeff Borggaard.

cordic, a library which computes a few special functions using the CORDIC algorithm.

correlation, a library which contains examples of statistical correlation functions.

correlation_chebfun, a library which uses the chebfun library to compute truncated Karhunen-Loeve expansions of stochastic processes with a given correlation function.

cube_arbq_rule, a library which returns quadrature rules, with exactness up to total degree 15, over the interior of the symmetric cube in 3D, by Hong Xiao and Zydrunas Gimbutas.

cube_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit cube in 3D.

cube_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function over the interior of the unit cube in 3D.

cvt_1d_lloyd, a program which computes an N-point Centroidal Voronoi Tessellation (CVT) within the interval [0,1], under a uniform density, using exact techniques to determine the Voronoi regions.

cvt_1d_nonuniform, a program which computes an N-point Centroidal Voronoi Tessellation (CVT) in 1 dimension, under a nonuniform density, and plots the evolution of the locations of the generators during the iteration;

cvt_1d_sampling, a program which computes an N-point Centroidal Voronoi Tessellation (CVT) within the interval [0,1], under a uniform density, using sampling to estimate the Voronoi regions.

cvt_2d_sampling, a program which computes an N-point Centroidal Voronoi Tessellation (CVT) within the unit square [0,1]x[0,1], under a uniform density, using sampling to estimate the Voronoi regions.

cvt_3d_sampling, a program which computes an N-point Centroidal Voronoi Tessellation (CVT) within the unit cube [0,1]x[0,1]x[0,1], under a uniform density, using sampling to estimate the Voronoi regions.

cvt_corn, a program which studies a 2D model of the growth of a corn kernel, by treating the surface and interior biological cells as points to be organized by a Centroidal Voronoi Tessellation (CVT) with a nonuniform density; during a sequence of growth steps, new biological cells are randomly added to the surface and interior.

cvt_dataset, a program which creates a Centroidal Voronoi Tessellation (CVT) dataset;

cvt_demo, a program which interactively, graphically demonstrates a Centroidal Voronoi Tessellation (CVT) calculation;

cvt_metric, a program which computes a Centroidal Voronoi Tessellation (CVT) under a spatially varying metric;

cvt_movie, a program which creates an animation of the evolution of a Centroidal Voronoi Tessellation (CVT);

cvt_movie2, a program which creates a Centroidal Voronoi Tessellation (CVT) movie;

cvt_movie3, a program which creates a Centroidal Voronoi Tessellation (CVT) movie in a region of unusual shape;

cvt_movie4, a program which creates a Centroidal Voronoi Tessellation (CVT) movie in a square, with a density function that drives points to the corners;

cvt_movie5, a program which repeats cvt_movie3, but with hexagonal grid initialization, fixed points, and boundary projection;

cycle_brent, a library which carries out an iterated function evaluation, and seeks to determine the nearest element of a cycle, and the cycle’s length, using Brent’s method.

cycle_floyd, a library which carries out an iterated function evaluation, and seeks to determine the nearest element of a cycle, and the cycle’s length, using Floyd’s method.

cyclic_reduction, a library which solves a tridiagonal linear system using cyclic reduction;

dfield8, a program which interactively displays the direction field of an ordinary differential equation (ODE), by John Polking.

diaphony, a program which reads a file of N points in M dimensions and computes its diaphony, a measure of point dispersion.

dice_simulation, a program which simulates N tosses of M dice, making a histogram of the results.

differ, determines the finite difference coefficients necessary in order to combine function values at known locations to compute an approximation of given accuracy to a derivative of a given order.

dijkstra, a library which implements a simple version of Dijkstra’s minimum distance algorithm for graphs.

dijkstra_spmd, a program which uses the spmd feature to parallelize a simple example of Dijkstra’s minimum distance algorithm for graphs.

discrete_pdf_sample_2d, a program which demonstrates how to construct a Probability Density Function (PDF) from sample data over a 2D domain, and then to use that PDF to create new samples.

disk_grid, a library which computes grid points within the interior of a disk of user specified radius and center in 2D, using GNUPLOT to create an image of the grid.

disk_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit disk in 2D.

disk_monte_carlo, a library which applies a Monte Carlo method to estimate integrals of a function over the interior of the unit disk in 2D;

disk_rule, a library which computes a quadrature rule for the unit disk, that is, the interior of the circle of radius 1 and center (0,0).

dist_plot, a program which makes contour plots of the distance function, as defined and used in Persson and Strang’s distmesh() code;

distance_to_position, a program which estimates the positions of cities which minimizes the discrepancy with a city-to-city distance table.

distance_to_position_sphere, a program which estimates the positions of cities on a sphere (such as the earth) based on a city-to-city distance table.

distmesh, a library which carries out a method of mesh generation; by Per-Olof Persson and Gilbert Strang.

distmesh_3d, a library which carries out a method of mesh generation in 3D, by Per-Olof Persson and Gilbert Strang.

divdif, a library which uses divided differences to compute the polynomial interpolant to a given set of data.

entrust, a library which uses trust-region methods to solve problems in scalar optimization or nonlinear least squares, by Jeff Borggaard and Gene Cliff.

exactness, a library which investigates the exactness of quadrature rules that estimate the integral of a function with a density, such as 1, exp(-x) or exp(-x^2), over an interval such as [-1,+1], [0,+oo) or (-oo,+oo).

exactness_2d, a library which investigates the exactness of 2D quadrature rules that estimate the integral of a function f(x,y) over a 2D domain.

face_spmd, a program which demonstrates the spmd parallel programming feature; the client has a 3D box that has been dissected into tetrahedrons. Multiple workers cooperate to construct a list of the triangular faces that lie on the boundaries of the box.

fair_dice_simulation, a program which simulates N tosses of 2 dice, making a histogram of the results.

fd1d_advection_diffusion_steady, a program which applies the finite difference method (FDM) to solve the steady advection diffusion equation v*ux-k*uxx=0 in one spatial dimension, with constant velocity v and diffusivity k.

fd1d_advection_ftcs, a program which applies the finite difference method (FDM) to solve the time-dependent advection equation ut = – c * ux in one spatial dimension, with a constant velocity, using the forward time centered space (FTCS) difference scheme.

fd1d_advection_lax, a program which applies the finite difference method (FDM) to solve the time-dependent advection equation ut = – c * ux in one spatial dimension, with a constant velocity, using the Lax method to approximate the time derivative.

fd1d_advection_lax_wendroff, a program which applies the finite difference method (FDM) to solve the time-dependent advection equation ut = – c * ux in one spatial dimension, with a constant velocity, using the Lax-Wendroff method to approximate the time derivative.

fd1d_burgers_lax, a program which applies the finite difference method (FDM) and the Lax Wendroff method to solve the non-viscous time-dependent Burgers equation in one spatial dimension.

fd1d_burgers_leap, a program which applies the finite difference method (FDM) and the leapfrog approach to solve the non-viscous time-dependent Burgers equation in one spatial dimension.

fd1d_bvp, a program which applies the finite difference method (FDM) to a two point boundary value problem (BVP) in one spatial dimension.

fd1d_display, a program which reads a pair of files defining a 1D model for the finite difference method (FDM), and plots the data.

fd1d_heat_explicit, a library which implements a finite difference method (FDM), explicit in time, to solve the time dependent 1D heat equation;

fd1d_heat_implicit, a program which implements a finite difference method (FDM), implicit in time, to solve the time dependent 1D heat equation;

fd1d_heat_steady, a program which implements a finite difference method (FDM) for the steady (time independent) 1D heat equation;

fd1d_predator_prey, a program which implements a finite difference method (FDM) for a time and 1D space dependent predator-prey system, by Marcus Garvie.

fd2d_heat_explicit_spmd, a program which uses the finite difference method (FDM) and explicit time stepping to solve the time dependent heat equation in 2D. A black and white image is used as the initial condition. MATLAB’s spmd facility is used to carry out the computation in parallel.

fd2d_heat_steady, a program which implements a finite difference method (FDM) for the steady (time independent) 2D heat equation;

fd2d_predator_prey, a program which implements a finite difference method (FDM) for a time and 2D space dependent predator-prey system, by Marcus Garvie.

fe2d_predator_prey_fast, programs which implement a finite element method (FEM) for a time and 2D space dependent predator-prey system, on an arbitrary triangulated region, with a variety of possible boundary conditions, incorporating some Matlab optimizations, by Marcus Garvie.

featool, a program which can set up and solve a variety of finite element problems;

fekete, a library which sets up one of seven Fekete rules for interpolation or quadrature in a triangle;

fem_meshing, a library which looks at some simple issues in defining a geometric mesh for the finite element method (FEM) in 2D.

fem_neumann, a program which sets up a time-dependent reaction-diffusion equation in 1D, with Neumann boundary conditions, discretized using the finite element method (FEM).

fem_to_mesh, a program which reads a pair of FEM files defining node coordinates and elements, and creates a corresponding MESH file.

fem_to_tec, a program which reads a set of FEM files, (three text files describing a finite element model), and writes a TECPLOT ASCII file.

fem1d, a program which applies the finite element method (FEM), using piecewise linear basis functions, to a linear two point boundary value problem (BVP) in 1D;

fem1d_adaptive, a program which uses an adaptive mesh when applying the finite element method (FEM), with piecewise linear basis functions, to a linear two point boundary value problem (BVP) in 1D;

fem1d_bvp_linear, a program which applies the finite element method (FEM), with piecewise linear elements, to a two point boundary value problem (BVP) in one spatial dimension, and compares the computed and exact solutions with the L2 and seminorm errors.

fem1d_bvp_quadratic, a program which applies the finite element method (FEM), with piecewise quadratic elements, to a two point boundary value problem (BVP) in one spatial dimension, and compares the computed and exact solutions with the L2 and seminorm errors.

fem1d_display, a program which reads three files defining a 1D arbitrary degree basis function associated with the finite element method (FEM), and displays a plot.

fem1d_function_10_display, a program which reads three files defining a 1D piecewise linear finite element method (FEM) function and displays a plot.

fem1d_heat_explicit, a program which uses the finite element method (FEM) and explicit time stepping to solve the time dependent heat equation in 1D.

fem1d_heat_implicit, a program which uses the finite element method (FEM) and implicit time stepping to solve the time dependent heat equation in 1D.

fem1d_heat_steady, a program which implements the finite element method (FEM) for the steady (time independent) 1D heat equation;

fem1d_nonlinear, a program which applies the finite element method (FEM), with piecewise linear basis functions, to a nonlinear two point boundary value problem (BVP) in 1D;

fem1d_pmethod, a program which applies the p-method version of the finite element method (FEM) to a linear two point boundary value problem (BVP) in 1D;

fem1d_project, a program which projects data into a finite element space, including the least squares approximation of data, or the projection of a finite element solution from one mesh to another.

fem1d_sample, a program which samples a scalar or vector finite element function of one variable, defined by FEM files, returning interpolated values at the sample points.

fem1d_spectral_numeric, a program which applies the spectral finite element method (FEM) to solve the problem u” = – pi^2 sin(x) over [-1,+1] with zero boundary conditions, using as basis elements the functions x^n*(x-1)*(x+1), and carrying out the integration numerically, using MATLAB’s quad() function, by Miro Stoyanov.

fem1d_spectral_symbolic, a program which applies the spectral finite element method (FEM) to solve the problem u” = – pi^2 sin(x) over [-1,+1] with zero boundary conditions, using as basis elements the functions x^n*(x-1)*(x+1), and carrying out the integration using MATLAB’s symbolic toolbox, by Miro Stoyanov.

fem2d_bvp_linear, a program which applies the finite element method (FEM), with piecewise linear elements, to a 2D boundary value problem (BVP) in a rectangle, and compares the computed and exact solutions with the L2 and seminorm errors.

fem2d_bvp_quadratic, a program which applies the finite element method (FEM), with piecewise quadratic elements, to a 2D boundary value problem (BVP) in a rectangle, and compares the computed and exact solutions with the L2 and seminorm errors.

fem2d_bvp_serene, a program which applies the finite element method (FEM), with serendipity elements, to a 2D boundary value problem (BVP) in a rectangle, and compares the computed and exact solutions with the L2 and seminorm errors.

fem2d_heat, a program which applies the finite element method (FEM) to the time dependent heat equation on an arbitrary triangulated region in 2D;

fem2d_heat_rectangle, a program which applies the finite element method (FEM) for the time-dependent heat equation on a triangulated square in 2D;

fem2d_heat_rectangle_steady_spmd, a program which uses the MATLAB Parallel Computing Toolbox in spmd mode to set up and solve a distributed linear system associated with the finite element method (FEM) solution of the steady 2d heat equation.

fem2d_heat_sparse, a program which applies the finite element method (FEM) to the heat equation on an arbitrary triangulated region in 2D, using MATLAB’s sparse matrix features;

fem2d_heat_sparse_square, a library which defines the geometry of a square region, as well as boundary and initial conditions for a given heat problem, so that fem2d_heat_sparse can be called for a solution.

fem2d_heat_square, a library which defines the geometry of a square region, as well as boundary and initial conditions for a given heat problem, so that fem2d_heat can be called for a solution.

fem2d_navier_stokes, a program which applies the finite element method (FEM) to the steady incompressible Navier Stokes equations on an arbitrary triangulated region in 2D;

fem2d_navier_stokes_cavity, a library which contains the user-supplied routines necessary to run fem2d_navier_stokes on the cavity problem.

fem2d_navier_stokes_channel, a library which contains the user-supplied routines necessary to run fem2d_navier_stokes on the channel problem.

fem2d_navier_stokes_sparse, a program which applies the finite element method (FEM) to the steady incompressible Navier Stokes equations on an arbitrary triangulated region in 2D, using MATLAB’s sparse matrix features;

fem2d_plot_gpl, a program which reads information about nodes, elements and nodal values for a 2D finite element method (FEM) and creates a GPL file describing a surface plot of U(X,Y), which can be displayed by GNUPLOT.

fem2d_poisson_rectangle, a program which solves the 2D Poisson equation on a rectangle, using the finite element method (FEM), and piecewise quadratic triangular elements.

fem2d_poisson_rectangle_linear, a program which solves the 2D Poisson equation on a rectangle, using the finite element method (FEM), and piecewise linear triangular elements.

fem2d_poisson_sparse, a program which uses the finite element method to solve Poisson’s equation on an arbitrary triangulated region in 2D; This is a version of fem2d_poisson which replaces the banded storage and direct solver by a sparse storage format.

fem2d_poisson_sparse_baffle, a library which defines the geometry of a rectangular channel with 13 baffles, as well as boundary conditions for a given Poisson problem, and is called by fem2d_poisson_sparse as part of a solution procedure.

fem2d_poisson_sparse_ell, a library which defines the geometry of an L-shaped region, as well as boundary conditions for a given Poisson problem, and is called by fem2d_poisson_sparse as part of a solution procedure.

fem2d_poisson_sparse_lake, a library which defines the geometry of a lake-shaped region, as well as boundary conditions for a given Poisson problem, and is called by fem2d_poisson_sparse as part of a solution procedure.

fem2d_project, a program which projects a function f(x,y), given as data, into a given finite element space of piecewise linear triangular elements.

fem2d_project_function, a program which projects a function f(x,y), given as a formula, into a given finite element space of piecewise linear triangular elements.

fem2d_sample, a program which samples a finite element function, defined by FEM files, (three text files describing the nodes, triangles, and coefficients); at arbitrary points.

fem2d_stokes_sparse, a program which is a finite element code for the steady incompressible Stokes equations on an arbitrary triangulated region in 2D, using MATLAB’s sparse matrix features;

fire_serial, a program which simulates a forest fire over a rectangular array of trees, starting at a single random location. It is intended as a starting point for the development of a parallel version.

flame_ode, a library which considers an ordinary differential equation (ODE) which models the growth of a ball of flame in a combustion process.

floyd, a library which implements Floyd’s algorithm for finding the shortest distance between pairs of nodes on a directed graph.

fmincon, programs which illustrate the use of fmincon() from MATLAB’s Optimization Toolbox, which seeks the minimizer of a scalar function of multiple variables, within a region specified by linear constraints and bounds.

fmincon_parallel, a program which demonstrates the use of MATLAB’s fmincon() constrained minimization function, taking advantage of the Parallel Computing Toolbox for faster execution.

gauss_seidel, a program which implements the Gauss-Seidel iteration for linear systems.

gauss_seidel_poisson_1d, a program which demonstrates how the linear system for a discretized version of the steady 1D Poisson equation can be solved by the Gauss-Seidel iteration.

gegenbauer_rule, a program which computes and writes out a Gauss-Gegenbauer quadrature rule of given order.

gen_hermite_rule, a program which computes and writes out a generalized Gauss-Hermite quadrature rule of given order and parameter value.

gen_laguerre_rule, a program which computes and writes out a generalized Gauss-Laguerre quadrature rule of given order and parameter value.

geometry, a library which performs geometric calculations in 2, 3 and M dimensional space, including the computation of angles, areas, containment, distances, intersections, lengths, and volumes.

gl_display, a program which displays the points used in a 2D Gauss-Legendre quadrature rule;

gnuplot, programs which illustrate how a program can write data and command files so that gnuplot can create plots of the program results.

gpl_display, a library which tries to read the data in a typical gnuplot GPL file, and display it in a more attractive way than gnuplot is capable of.

graph_representation, a library which can express the representation of an abstract mathematical graph in several ways.

graphics_examples, programs which illustrate how various kinds of data can be displayed and analyzed graphically.

gray_code_display, a program which computes the Hamming distance tables for both the binary and Gray codes, and displays 3D plots that illustrate how the Gray code does a better job of providing nearby representations for nearby numbers.

grf_display, a program which reads a GRF file defining a mathematical graph and displays it in the MATLAB graphics window.

histogram_display, a program which makes a bar plot of a set of data stored as columns in a file; the first column is the X values, and all the other columns are Y values to be shown as a stack of bars;

hyperball_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit hyperball in M dimensions.

hyperball_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function over the interior of the unit ball in M dimensions;

hyperball_volume_monte_carlo, a program which applies a Monte Carlo procedure to estimate the volume of the interior of the unit ball in M dimensions;

hypercube_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit hypercube in M dimensions.

hypercube_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function over the interior of the unit hypercube in M dimensions.

hypersphere_integrals, a library which returns the exact value of the integral of any monomial over the surface of the unit hypersphere in M dimensions.

hypersphere_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function on the surface of the unit sphere in M dimensions;

hypersphere_properties, a library which carries out various operations for an M dimensional hypersphere, including converting between Cartesian and spherical coordinates, stereographic projection, sampling the surface of the sphere, and computing the surface area and volume.

hypersphere_surface, a library which illustrates a procedure for estimating the location of a hypersurface in M dimensional space defined by a characteristic function or a signed function.

i4lib, a library which contains many utility routines, using single precision integer (I4) arithmetic.

ifiss3.3, a program which embodies the IFISS software that can model the steady (time-independent) flow of a 2D incompressible fluid, by Howard Elman, Alison Ramage, David Silvester.

image_denoise_spmd, a library which demonstrates the spmd parallel programming feature for image operations; the client reads an image, the workers process portions of it, and the client assembles and displays the results.

int_exactness_jacobi, a program which tests the polynomial exactness of Gauss-Jacobi quadrature rules.

interp, a library which can be used for parameterizing and interpolating data;

ising_2d_simulation, a program which simulates the evolution of a 2D array of positive and negative charges, each of which is likely to flip to be in agreement with neighbors.

jacobi, a program which implements the Jacobi iteration for the iterative solution of linear systems.

jacobi_eigenvalue, a library which implements the Jacobi iteration for the iterative determination of the eigenvalues and eigenvectors of a real symmetric matrix.

jacobi_poisson_1d, a program which demonstrates how the linear system for a discretized version of the steady 1D Poisson equation can be solved by the Jacobi iteration.

jacobi_polynomial, a library which evaluates the Jacobi polynomial and associated functions.

jacobi_rule, a program which computes and writes out a Gauss-Jacobi quadrature rule of given order.

kmeans, a library which handles the K-Means problem, which organizes a set of N points in M dimensions into K clusters;

kmeans_fast, a library which contains several different algorithms for the K-Means problem, which organizes a set of N points in M dimensions into K clusters, by Charles Elkan.

kronrod, a library which can compute a Gauss and Gauss-Kronrod pair of quadrature rules of arbitrary order, by Robert Piessens, Maria Branders.

lagrange_approx_1d, a library which defines and evaluates the Lagrange polynomial p(x) of degree m which approximates a set of nd data points (x(i),y(i)).

lagrange_basis_display, a library which displays the basis functions associated with a given set of nodes used with the Lagrange interpolation scheme.

lagrange_interp_1d, a library which defines and evaluates the Lagrange polynomial p(x) which interpolates a set of data depending on a 1D argument, so that p(x(i)) = y(i).

lagrange_interp_2d, a library which defines and evaluates the Lagrange polynomial p(x,y) which interpolates a set of data depending on a 2D argument that was evaluated on a product grid, so that p(x(i),y(j)) = z(i,j).

lagrange_interp_nd, a library which defines and evaluates the Lagrange polynomial p(x) which interpolates a set of data depending on an M dimensional argument that was evaluated on a product grid, so that p(x(i)) = z(i).

lagrange_nd, a library which implements several multivariate Lagrange interpolation schemes developed by Tomas Sauer.

laguerre_exactness, a program which tests the polynomial exactness of Gauss-Laguerre quadrature rules for integrating functions with density exp(-x) over [0,+oo).

laguerre_polynomial, a library which evaluates the Laguerre polynomial, the generalized Laguerre polynomials, and the Laguerre function.

laguerre_rule, a program which computes a Gauss-Laguerre quadrature rule of given order, and writes it to a file.

laguerre_test_int, a library which implements test problems for approximate integration over a semi-infinite interval, often carried out using Gauss-Laguerre quadrature.

laplacian, a library which carries out computations related to the discrete Laplacian operator, including full or sparse evaluation, evaluation for unequally spaced data sampling points, application to a set of data samples, solution of associated linear systems, eigenvalues and eigenvectors, and extension to 2D and 3D geometry.

lcvt, a library which makes a sort of Latinized Centroidal Voronoi Tessellation (CVT);

lcvt_dataset, a program which creates a Latinized Centroidal Voronoi Tessellation (CVT) dataset;

lebesgue, a library which is given a set of nodes in 1D, and plots the Lebesgue function, and estimates the Lebesgue constant, which measures the maximum magnitude of the potential error of Lagrange polynomial interpolation.

legendre_exactness, a program which tests the monomial exactness of quadrature rules for the Legendre problem of integrating a function with density 1 over the interval [-1,+1].

legendre_polynomial, a library which evaluates the Legendre polynomial and associated functions.

legendre_rule, a program which writes out a Gauss-Legendre quadrature rule of given order.

levels, a library which makes a contour plot, choosing the contour levels using random sampling.

life_serial, a program which computes a few steps of the evolution of John Conway’s Game of Life, intended as a starting point for implementing a parallel version.

line_fekete, a library which approximates the location of Fekete points in an interval [A,B]. A family of sets of Fekete points, indexed by size N, represents an excellent choice for defining a polynomial interpolant.

line_integrals, a library which returns the exact value of the integral of any monomial over the length of the unit line in 1D.

line_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function over the length of the unit line in 1D.

line_ncc_rule, a library which computes a Newton Cotes (Closed) quadrature rule for the line, that is, for an interval of the form [A,B], using equally spaced points which include the endpoints.

linpack, a library which solves linear systems for a variety of matrix storage schemes, real or complex arithmetic, and single or double precision. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.

linpack_c, a library which constitutes a linear algebra library for single precision complex arithmetic; it includes a function for the singular value decomposition (SVD) of a rectangular matrix. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.

linpack_d, a library which constitutes a linear algebra library for double precision real arithmetic; it includes a function for the singular value decomposition (SVD) of a rectangular matrix. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.

linpack_s, a library which constitutes a linear algebra library; for single precision real arithmetic; it includes a function for the singular value decomposition (SVD) of a rectangular matrix. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.

linpack_z, a library which constitutes a linear algebra library for double precision complex arithmetic; it includes a function for the singular value decomposition (SVD) of a rectangular matrix. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.

llsq, a library which solves the simple linear least squares problem of finding the formula of a straight line y=a*x+b which minimizes the root-mean-square error to a set of N data points.

lobatto_polynomial, a library which evaluates the Lobatto polynomial and associated functions.

lorenz_cluster, a library which takes a set of N points on a trajectory of solutions to the Lorenz equations, and applies the K-means algorithm to organize the data into K clusters.

lorenz_ode, a program which approximates solutions to the Lorenz system, creating output files that can be displayed by Gnuplot.

lorenz_simulation, a program which computes and displays solutions of the Lorenz equations for various initial conditions.

lyrics_remote, a program which runs in parallel, using three workers which cooperate systolically, that is, as though they were on an assembly line. The output from worker 1 is passed to worker 2 for further processing, and so on. This includes instructions on how to run the job, via MATLAB’s batch facility, on a remote system such as Virginia Tech’s ithaca cluster.

machar, a library which dynamically computes the values of various machine characteristic constants, by William Cody;

machine, a library which returns tabulated values of the constants associated with computer arithmetic;

matlab_os, programs which illustrate how the system command can be used to allow MATLAB to issue commands to the computer operating system (UNIX or DOS);

matlab_parallel, programs which illustrate local parallel programming on a single computer with MATLAB’s Parallel Computing Toolbox.

matlab_random, programs which illustrate the use of Matlab’s random number generator (RNG) routines.

matlab_random_parallel, programs which illustrate the use of Matlab’s random number generator (RNG) routines when working with parallel features such as parfor or spmd.

matlab_remote, programs which illustrate the use of remote job execution, in which a desktop copy of MATLAB sends programs and data to a remote machine for execution. Included is information to properly configure the local machine.

matlab_return, programs which illustrate that explicitly invoking the return statment can be surprisingly costly;

matlab_surf, MATLAB programs which demonstrate the MATLAB surf() function for displaying a 3D surface of the form Z=F(X,Y).

matrix_assemble_parfor, a program which demonstrates the parfor parallel programming feature by assembling the Hilbert matrix in a parallel loop.

matrix_assemble_spmd, a program which demonstrates the spmd parallel programming feature by having each worker assemble part of the Hilbert matrix, which is then combined into one array by the client program.

matrix_exponential, a library which demonstrates some simple approaches to the problem of computing the exponential of a matrix.

md, a program which carries out a molecular dynamics simulation, and is intended as a starting point for implementing a parallel version.

md_fast, a program which carries out a molecular dynamics simulation; it is a version of MD that has been revised to take advantage of MATLAB’s vector abilities.

md_parfor, a program which carries out a molecular dynamics simulation; it runs in parallel using MATLAB’s parfor facility.

memory_test, a program which tests the memory available on the computer by declaring and using big vectors.

mesh_bandwidth, a program which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of M dimensions.

mesh_display, a program which reads a 2D mesh of elements of any uniform order and displays a plot of the elements and nodes, with optional numbering.

mesh_io, a library which can read or write MESH files, which can be used to define the geometry of a finite element mesh in 2D or 3D, using triangles, quadrilaterals, tetrahedrons or hexahedrons.

mesh2d, a library which can automatically create a triangular mesh for a given polygonal region, by Darren Engwirda.

mesh2d_hand, a program which reads in a set of 59 points which outline a human hand, and calls mesh2d(), which is able to create a fine triangular mesh of the region outlined by the points.

mesh2d_write, a program which demonstrates how node and element data from mesh2d can be written to files.

mex, a directory of programs which call lower-level functions written in traditional languages such as C, C++, FORTRAN77 or FORTRAN90, compiled with MATLAB’s mex compiler.

mgmres, a library which applies the restarted gmres algorithm to a sparse linear system, by Lili Ju;

mgs, a library which is an example of legacy code, which the student is encouraged to study, understand, and document. This example is due to Diane O’Leary.

nearest_interp_1d, a library which interpolates a set of data using a piecewise constant interpolant defined by the nearest neighbor criterion.

nearest_neighbor, a library which works in a given M dimensional space, seeking, for each point in a set S, the nearest point in a set R, by Richard Brown.

neighbors_to_metis_graph, a program which reads a file describing the neighbor structure of a triangulation or tet mesh, and writes a metis graph file suitable for input to one of the family of programs based on metis.

nelder_mead, a program which implements the Nelder-Mead algorithm for the minimization of a scalar function of several variables, by Jeff Borggaard.

obj_io, a library which reads and writes the data in an OBJ 3D graphics file;

obj_to_tri_surface, a program which reads an OBJ 3D graphics file and extracts the surface mesh data as a TRI_SURFACE dataset.

ode_predator_prey, a program which solves a time-dependent predator-prey system of ordinary differential equations (ODE’s) using MATLAB’s ode23() function.

ode_sweep_parfor, a program which demonstrates how the parfor command can be used to parallelize the computation of a grid of solutions to a parameterized system of ordinary differential equations (ODE’s).

ode_sweep_serial, a program which computes a grid of solutions to a parameterized system of ordinary differential equations (ODE’s).

optimal_control_1d, a program which seeks the optimal control function for a one dimensional system which is represented using the finite element formulation;

ornstein_uhlenbeck, a library which approximates solutions of the Ornstein-Uhlenbeck stochastic ordinary differential equation (SODE) using the Euler method, the Euler-Maruyama method, and the Milstein method.

pce_burgers, a program which defines and solves a version of the time-dependent viscous Burgers equation, with uncertain viscosity, using a polynomial chaos expansion (PCE) in terms of Hermite polynomials, by Gianluca Iaccarino.

pce_legendre, a program which assembles the system matrix of a 2D stochastic partial differential equation (SPDE), using a polynomial chaos expansion (PCE) in terms of Legendre polynomials;

pce_ode_hermite, a program which sets up a scalar stochastic ordinary differential equation (SODE) for exponential decay with an uncertain decay rate, using a polynomial chaos expansion (PCE) in terms of Hermite polynomials.

pdepe, programs which illustrate how MATLAB’s pdepe() function can be used to solve initial boundary value problems (IBVP’s) in one spatial dimension.

pic_serial, a program which uses the Particle In Cell (PIC) method to simulate the motion of electrically charged particles past a plate, and is intended as a starting point for implementing a parallel version.

ply_to_tri_surface, a program which reads a PLY file and extracts the surface mesh data as a tri_surface dataset.

point_merge, a library which considers N points in M dimensional space, and counts or indexes the unique or tolerably unique items.

poisson_serial, a program which solves the Poisson equation in a rectangle, intended as the starting point for the creation of a parallel version.

poisson_simulation, a library which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.

polpak, a library which evaluates a variety of mathematical functions, including Chebyshev, Gegenbauer, Hermite, Jacobi, Laguerre, Legendre polynomials, and the Collatz sequence.

polygon_integrals, a library which returns the exact value of the integral of any monomial over the interior of a polygon in 2D.

polygon_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function over the interior of a polygon in 2D.

polygon_properties, a library which computes properties of an arbitrary polygon in the plane, defined by a sequence of vertices, including interior angles, area, centroid, containment of a point, convexity, diameter, distance to a point, inradius, lattice area, nearest point in set, outradius, uniform sampling.

polygon_triangulate, a library which triangulates a (possibly nonconvex) polygon in 2D, based on a C program by Joseph ORourke;

product_rule, a program which creates an M dimensional quadrature rule from a product of distinct 1d quadrature rules;

profile, a directory of programs which illustrate the use of the MATLAB profile utility, which monitors the execution of a series of MATLAB commands, and then produces a performance profile report afterwards.

quad_mesh_rcm, a program which computes the Reverse Cuthill-McKee (RCM) reordering for nodes in a mesh of 4-node quadrilaterals.

quad_parfor, a program which estimates an integral using quadrature; running in parallel using MATLAB’s parfor feature.

quad_serial, a program which applies a quadrature rule to estimate an integral, intended as a starting point for parallelization exercises.

quad_spmd, a program which estimates an integral using quadrature; running in parallel using MATLAB’s spmd feature.

quad_surface_display, a program which plots piecewise bilinear data associated with a quad_surface, that is, a 3D surface defined by a quadrilateral mesh;

quad_tasks, a program which estimates an integral using quadrature; running in parallel using MATLAB’s task feature.

quad2d_serial, a program which applies a product quadrature rule to estimate an integral over a 2D rectangle, intended as a starting point for parallelization exercises.

quadmom, a library which computes a Gaussian quadrature rule for a weight function rho(x) based on the Golub-Welsch procedure that only requires knowledge of the moments of rho(x).

quadrature_golub_welsch, a library which computes the points and weights of a Gaussian quadrature rule using the Golub-Welsch procedure.

quadrature_least_squares, a library which computes weights for sub-interpolatory quadrature rules, that is, it estimates integrals by integrating a polynomial that approximates the function data in a least squares sense.

quadrature_test, a program which reads the definition of an M dimensional quadrature rule from three files, applies the rule to a number of test integrals, and prints the results.

quadrature_test_2d, a program which reads the definition of a 2D quadrature rule from three files, applies the rule to a number of test integrals, and prints the results.

quadrature_weights_vandermonde, a library which computes the weights of a quadrature rule using the Vandermonde matrix, assuming that the points have been specified.

quadrature_weights_vandermonde_2d, a library which computes the weights of a 2D quadrature rule using the Vandermonde matrix, assuming that the points have been specified.

quadrule, a library which defines quadrature rules for approximating an integral;

quadrule_fast, a library which rapidly defines certain quadrature rules for approximating an integral;

quality, a library which measures the dispersion of pointsets in M dimensions;

randlc, a library which implements a random number generator (RNG) used by the NAS Benchmark programs.

random_data, a library which uses a random number generator (RNG) to sample points distributed according to various probability density functions (PDF’s), spatial dimensions, and geometries, including the M-dimensional cube, ellipsoid, simplex and sphere.

random_walk_2d_avoid_tasks, a program which computes many self avoiding random walks in 2D by creating a job which defines each walk as a task, and then computes these independently using MATLAB’s Parallel Computing Toolbox task computing capability.

rcm, a library which applies the Reverse Cuthill McKee (RCM) algorithm for reordering the nodes of a graph, and reducing the bandwidth of a corresponding sparse matrix;

reactor simulation, a program which is a simple Monte Carlo simulation of the shielding effect of a slab of a certain thickness in front of a neutron source. This program was provided as an example with the book “Numerical Methods and Software.”

rk4, a library which applies the fourth order Runge-Kutta (RK) algorithm to estimate the solution of an ordinary differential equation (ODE) at the next time step.

rkf45, a library which applies a Runge-Kutta-Fehlberg (RKF) solver to a system of ordinary differential equations (ODE’s);

rnglib, a library which implements a random number generator (RNG) with splitting facilities, allowing multiple independent streams to be computed, by L’Ecuyer and Cote.

sammon_data, a program which generates six examples of M dimensional datasets for cluster analysis.

sandia_sgmgg, a library which explores a generalized construction method for sparse grids.

sandia_sparse, a library which can produce an M dimensional sparse grid, based on a variety of 1D quadrature rules; only isotropic grids are generated, that is, the same rule is used in each dimension, and the same maximum order is used in each dimension.

satisfy, a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.

satisfy_parfor, a program which carries out a circuit satisfiability search; it runs in parallel using MATLAB’s parfor facility.

sde, a library which illustrates properties of stochastic differential equations (SODE’s), and common algorithms for their analysis, by Desmond Higham;

search_serial, a program which searches the integers from A to B for a value J such that F(J) = C. this version of the program is intended as a starting point for a parallel approach.

set_theory, a library which demonstrates MATLAB commands that implement various set theoretic operations.

sftpack, a library which implements the slow Fourier transform, intended as a teaching tool and comparison with the Fast Fourier Transform (FFT).

sgmga, a library which creates sparse grids based on a mixture of 1D quadrature rules, allowing anisotropic weights for each dimension.

shallow_water_1d, a program which simulates the evolution of a 1D fluid governed by the time-dependent shallow water equations.

shallow_water_1d_display, a program which can display a solution of the shallow water equations in 1D, generally as computed by the program shallow_water_1d.

shallow_water_2d, a program which simulates the evolution of a 2D fluid governed by the time-dependent shallow water equations, by Cleve Moler.

shepard_interp_1d, a library which defines and evaluates Shepard interpolants to 1D data, based on inverse distance weighting.

shepard_interp_2d, a library which defines and evaluates Shepard interpolants to 2D data, based on inverse distance weighting.

shepard_interp_nd, a library which defines and evaluates Shepard interpolants to M dimensional data, based on inverse distance weighting.

shoreline, a program which tries to identify and triangulate the 2D domain over which some function f(x,y) is nonnegative.

shoreline2, a program which tries to identify and triangulate the 2D domain over which some function f(x,y) is approximately zero.

side_by_side_display, a program which demonstrates how to display curves side by side in a 3D plot; the curves might be yearly snowfall data over consecutive years, for instance.

simplex_coordinates, a library which computes the Cartesian coordinates of the vertices of a regular simplex in M dimensions.

simplex_gm_rule, a library which defines Grundmann-Moeller quadrature rules over the interior of a triangle in 2D, a tetrahedron in 3D, or over the interior of the simplex in M dimensions.

simplex_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit simplex in M dimensions.

simplex_monte_carlo, a library which uses the Monte Carlo method to estimate an integral over the interior of the unit simplex in M dimensions.

sine_transform, a library which demonstrates some simple properties of the discrete sine transform.

sir_simulation, a program which simulates the spread of a disease through a hospital room of M by N beds, using the Susceptible/Infected/Recovered (SIR) model.

smolyak_display, a program which displays the exactness diagram for a 2D Smolyak sparse grid, by displaying and summing the exactness diagrams for the component product rules.

sobol, a library which generates elements of the Sobol M dimensional quasirandom sequence, by Bennett Fox.

sobol_dataset, a program which creates a Sobol M dimensional quasirandom dataset;

solve, a library which demonstrates how Gauss elimination can be used to solve a linear system A*x=b.

sor, a library which implements a simple version of the successive over-relaxation (SOR) method for the iteration solution of a linear system of equations.

sparse, programs which illustrate the use of MATLAB’s sparse matrix utilities;

sparse_count, a library which is for the analysis and creation of sparse grids in which a single family of 1D quadrature rules is used for all spatial dimensions, for various growth rules.

sparse_display, a library which can read information defining a matrix of numbers and display the sparsity pattern or location of the nonzero elements using gnuplot. This operation is already available in the built-in MATLAB “spy” command.

sparse_grid_cc, a library which creates sparse grids based on Clenshaw-Curtis quadrature rules.

sparse_grid_open, a library which creates sparse grids based on one of the following open 1D rules: Fejer 2, Gauss-Patterson, Newton-Cotes-Open.

sparse_grid_open_dataset, a program which creates a sparse grid dataset based on one of the following open 1D rules: Fejer 2, Gauss-Patterson, Newton-Cotes-Open.

sparse_grid_total_poly, a library which investigates the efficient approximation of all polynomials up to a given total degree using sparse grids.

sparse_interp_nd, a library which can be used to define a sparse interpolant to a function f(x) of a M dimensional argument.

sparse_parfor, a library which demonstrates how a sparse matrix can be constructed by evaluating individual blocks in parallel with the parfor command, and then assembled on a single processor using the sparse() command, by Gene Cliff.

sphere_cvt, a program which carries out the Centroidal Voronoi Tessellation (CVT) iteration on the surface of the unit sphere in 3D.

sphere_delaunay, a program which computes the Delaunay triangulation of points on the surface of the unit sphere in 3D.

sphere_exactness, a program which tests the polynomial exactness of a quadrature rule on the surface of the unit sphere in 3D.

sphere_grid, a library which provides a number of ways of generating grids of points, or of points and lines, or of points and lines and faces, on the surface of the unit sphere in 3D.

sphere_integrals, a library which returns the exact value of the integral of any monomial over the surface of the unit sphere in 3D.

sphere_lebedev_rule, a library which computes Lebedev quadrature rules on the surface of the unit sphere in 3D.

sphere_lebedev_rule_display, a program which reads a file defining a Lebedev quadrature rule on the surface of the unit sphere in 3D and displays the point locations.

sphere_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function on the surface of the unit sphere in 3D.

sphere_quad, a library which uses quadrature to approximate an integral on the surface of the unit sphere in 3D;

sphere_stereograph, a library which computes the stereographic mapping between points on the surface of the unit sphere in 3D and points on the plane Z = 1; a generalized mapping is also available.

sphere_stereograph_display, a library which computes and displays the results of several stereographic projections between points on the surface of the unit sphere in 3D and a plane.

sphere_triangle_monte_carlo, a library which used the Monte Carlo method to estimate the integral of a function defined in a triangle on the surface of the unit sphere in 3D.

sphere_triangle_quad, a library which uses quadrature to estimate the integral of a function in a spherical triangle on the surface of the unit sphere in 3D.

sphere_voronoi, a program which computes the Voronoi diagram of points on the surface of the unit sphere in 3D.

sphere_xyz_display, a program which reads XYZ information defining points on the surface of the unit sphere in 3D and displays the sphere and the points in the MATLAB 3D graphics window.

sphere_xyzf_display, a program which reads XYZ information defining point coordinates, and XYZF information defining point indices forming faces, on the surface of the unit sphere in 3D and displays a unit sphere, the points, and the faces, in the MATLAB 3D graphics window.

spinterp, a library which carries out piecewise multilinear hierarchical sparse grid interpolation, quadrature and optimization, by Andreas Klimke; an earlier version of this software is ACM TOMS Algorithm 847.

spinterp_examples, a library which demonstrates some simple uses of the spinterp program, which uses sparse grids for interpolation, optimization, and quadrature in higher dimensions.

spiral_data, a program which computes a velocity vector field that satisfies the continuity equation, writing the data to a file that can be plotted by gnuplot.

spquad, a library which computes the points and weights of a sparse grid quadrature rule for an M dimensional integral, based on the Clenshaw-Curtis quadrature rule, by Greg von Winckel.

spring_ode, a program which shows how line printer graphics can be used to make a crude illustration of a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.

spring_ode2, a program which shows how gnuplot graphics can be used to illustrate a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.

square_arbq_rule, a library which returns quadrature rules, with exactness up to total degree 20, over the interior of the symmetric square in 2D, by Hong Xiao and Zydrunas Gimbutas.

square_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit square in 2D.

square_monte_carlo, a library which applies a Monte Carlo method to estimate the integral of a function over the interior of the unit square in 2D.

square_symq_rule, a library which returns symmetric quadrature rules, with exactness up to total degree 20, over the interior of the symmetric square in 2D, by Hong Xiao and Zydrunas Gimbutas.

stochastic_heat2d, a program which implements a finite difference method (FDM) for the steady (time independent) 2D heat equation, with a stochastic heat diffusivity coefficient.

stochastic_rk, a library which applies a Runge-Kutta (RK) scheme to approximate the solution of a stochastic ordinary differential equation (SODE).

string_simulation, a program which simulates the behavior of a vibrating string by solving the corresponding initial boundary value problem (IBVP).

stroud, a library which defines quadrature rules for a variety of M-dimensional regions, including the interior of the square, cube and hypercube, the pyramid, cone and ellipse, the hexagon, the M-dimensional octahedron, the circle, sphere and hypersphere, the triangle, tetrahedron and simplex, and the surface of the circle, sphere and hypersphere.

svd_basis, a program which applies the singular value decomposition (SVD) to a collection of data vectors, extracting dominant modes;

svd_demo, a program which demonstrates the calculation of the singular value decomposition (SVD) and some of its properties;

svd_fingerprint, a program which reads a file containing a fingerprint image and uses the singular value decomposition (SVD) to compute and display a series of low rank approximations to the image.

svd_snowfall, a program which reads a file containing historical snowfall data and analyzes the data with the Singular Value Decomposition (SVD).

svd_truncated, a program which demonstrates the computation of the reduced or truncated Singular Value Decomposition (SVD) that is useful for cases when one dimension of the matrix is much smaller than the other.

table_delaunay, a program which reads a table file of N points in 2 dimensions and writes out the Delaunay triangulation;

table_latinize, a program which reads a table file of N points in M dimensions, adjusts to form a Latin hypercube;

table_merge, a program which reads a table file of N points in M dimensions, removes duplicates or points that are closer than some tolerance, and writes the reduced set of points to a file.

table_quality, a program which reads a table file of N points in M dimensions, in the unit hypercube, and estimates the quality of the point dispersion;

table_voronoi, a program which reads a table file of N points in 2 dimensions, calls geompack to get Delaunay triangulation information, and then determines and prints the Voronoi diagram information;

task_division, a library which implements a simple procedure for smoothly dividing T tasks among P processors; such a method can be useful in MPI and other parallel environments, particularly when T is not an exact multiple of P, and when the processors can be indexed starting from 0 or from 1.

tcell_flow_display, a library which displays a single velocity field solution for the T cell;

tcell_flow_movie, a library which creates an animation of the velocity solutions for the T cell;

tcell_rom, a program which solves a reduced order model of a finite element solution of the Navier Stokes equations in a T-Cell flow region, by Hyung-Chun Lee.

tec_to_fem, a program which reads a tecplot ASCII file, extracts the information, and writes a corresponding set of FEM files, three text files describing the finite element model;

tec_to_vtk, a program which reads a particular tecplot ASCII file containing 80 frames of the movement of a red blood cell, and creates 80 separate VTK unstructured grid files, which can then be read by paraview and animated.

templates, a library which carries out the iterative solution of linear systems;

tensor_grid_display, a program which can display the grid points of a tensor product rule used for interpolation or quadrature, in 1D, 2D or 3D.

test_approx, a library which implements test problems for approximation, provided as a set of (x,y) data.

test_con, a library which implements test problems for numerical continuation.

test_eigen, a library which implements test matrices for eigenvalue analysis.

test_int, a library which implements test problems for approximate integration (quadrature) in one dimension.

test_int_2d, a library which implements test problems for approximate integration (quadrature) in two dimensions.

test_int_margin, a library which implements test functions for the task of locating the region for which margin <= f(x), and estimating an integral over that region.

test_interp, a library which defines test problems for interpolation, provided as a set of (x,y(x)) data.

test_interp_1d, a library which defines test problems for interpolation of data y(x), which depends on a 1D argument.

test_interp_2d, a library which defines test problems for interpolation of data z(x,y), which depends on a 2D argument.

test_interp_nd, a library which defines test problems for interpolation of data z(x), depending on an M dimensional argument.

test_ls, a library which implements linear least squares test problems of the form A*x=b.

test_mat, a library which defines test matrices for which some of the determinant, eigenvalues, inverse, null vectors, P*L*U factorization or linear system solution are already known, including the Vandermonde and Wathen matrix.

tet_mesh_boundary, a program which reads information defining a tetrahedral mesh of points in 3D, and determines the triangular faces that form the boundary of the mesh; it writes out files containing the nodes and elements defining this TRI_SURFACE data.

tet_mesh_display, a program which reads data defining a (small) tetrahedral mesh, and displays a wireframe image of the nodes and edges;

tet_mesh_l2q, a program which reads information about a 4-node (linear) tetrahedral mesh and creates data defining a corresponding 10-node (quadratic) tetrahedral mesh;

tet_mesh_q2l, a program which reads information about a 10-node (quadratic) tet mesh and creates data defining a corresponding 4-node (linear) tetrahedral mesh;

tet_mesh_quad, a program which estimates the integral of a function over a region defined by a tetrahedral mesh.

tet_mesh_quality, a program which computes various quality measures for a tetrahedral mesh of a set of nodes in 3D;

tet_mesh_rcm, a program which computes the Reverse Cuthill McKee (RCM) reordering for the nodes of a tetrahedral mesh that uses 4-node or 10-node tetrahedrons;

tet_mesh_tet_neighbors, a program which reads information about a tetrahedral mesh and writes out a list of the tetrahedrons adjacent to a given tetrahedron;

tet_mesh_to_gmsh, a program which reads information defining a tetrahedral mesh, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding Gmsh mesh file.

tet_mesh_to_xml, a program which reads information defining a tetrahedral mesh, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding DOLFIN XML mesh file.

tet_mesh_volumes, a program which computes the volume of each tetrahedron in a tetrahedral mesh;

tetrahedron_arbq_rule, a library which returns quadrature rules, with exactness up to total degree 15, over the interior of a tetrahedron in 3D, by Hong Xiao and Zydrunas Gimbutas.

tetrahedron_exactness, a program which tests the polynomial exactness of a quadrature rule over the interior of a tetrahedron in 3D.

tetrahedron_grid, a library which computes a grid of points over the interior of a tetrahedron in 3D.

tetrahedron_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit tetrahedron in 3D.

tetrahedron_keast_rule, a library which defines ten quadrature rules, of degree of exactness 0 through 8, over the interior of the tetrahedron in 3D.

tetrahedron_monte_carlo, a library which uses the Monte Carlo method to estimate an integral over the interior of the unit tetrahedron in 3D.

tetrahedron_ncc_rule, a library which defines Newton-Cotes closed (NCC) quadrature rules over the interior of a tetrahedron in 3D.

tetrahedron_nco_rule, a library which defines Newton-Cotes open (NCO) quadrature rules over the interior of a tetrahedron in 3D.

tetrahedron_properties, a program which computes properties, including the centroid, circumsphere, dihedral angles, edge lengths, face angles, face areas, insphere, quality, solid angles, and volume for a tetrahedron in 3D.

tetrahedron_slice_animate, a program which is given a tetrahedron and a vector, and displays an evenly spaced sequence of planes that intersect the tetrahedron and are normal to the vector.

tetrahedron_slice_display, a program which determines the intersection between a tetrahedron and a plane and displays the result.

theodolite, a library which presents the problem of estimating the location of an event which occurs in the sky, atmosphere, or the heavens, using nothing but the reported angle of observation from several stations; this is an example in which a nonlinear least squares solver is needed.

three_body_simulation, a program which simulates the behavior of three planets, constrained to lie in a plane, and moving under the influence of gravity, by Walter Gander and Jiri Hrebicek.

threed_to_tecplot, a program which accepts computational data from a 3D finite element fluid flow program and writes it to a tecplot ASCII graphics file.

threed_to_vtk, a program which accepts computational data from a 3D finite element fluid flow program and writes it to a vtk legacy file for postprocessing by paraview.

threed_to_vtu, a program which accepts computational data from a 3D finite element fluid flow program and writes it to a vtk unstructured grid file for postprocessing by the paraview visualization program.

threed_to_vu, a program which accepts computational data from a 3D finite element fluid flow program and writes it to a file for postprocessing by the vu visualization program.

tic_toc, programs which demonstrate some features of MATLAB’s tic and toc functions for wallclock timing.

timestamp, a library which prints the current YMDHMS date as a timestamp;

toeplitz_cholesky, a library which computes the Cholesky factorization of a nonnegative definite symmetric Toeplitz matrix.

toms097, a library which computes the distance between all pairs of nodes in a directed graph with weighted edges, using Floyd’s algorithm. This is a version of ACM TOMS algorithm 97.

toms178, a library which seeks the minimizer of a scalar function of several variables using the Hooke-Jeeves method, by Arthur Kaupe. This is a version of ACM TOMS algorithm 178.

toms179, a library which calculates the incomplete Beta ratio, by Oliver Ludwig. This is a version of ACM TOMS algorithm 179.

toms291, a library which approximates the logarithm of the Gamma function. This is a version of ACM TOMS algorithm 291.

toms443, a library which evaluates Lambert’s W function. This is a version of ACM TOMS algorithm 443.

toms446, a library which manipulates Chebyshev series for interpolation and approximation, by Roger Broucke. This is a version of ACM TOMS algorithm 446.

toms462, a library which evaluates the upper right tail of the bivariate normal distribution; that is, the probability that normal variables X and Y with correlation R will satisfy H <= X and K <= Y. This is a version of ACM TOMS algorithm 462.

toms655, a library which computes the weights for interpolatory quadrature rule; this library is commonly called IQPACK, by Sylvan Elhay and Jaroslav Kautsky. This is a version of ACM TOMS algorithm 655.

toms743, a library which evaluates Lambert’s W function. This is a version of ACM TOMS algorithm 743, by Barry, Barry and Culligan-Hensley.

toms847, a library which carries out piecewise multilinear hierarchical sparse grid interpolation, commonly known as SPINTERP, by Andreas Klimke. This is a version of ACM TOMS Algorithm 847.

toms866, a library which contains version 2.2 of the Incompressible Flow Iterative Solution Software (IFISS), by Howard Elman, Alison Ramage, David Silvester. This is a version of ACM TOMS algorithm 866.

toms886, a library which defines the Padua points for interpolation in a 2D region, including the rectangle, triangle, and ellipse, by Marco Caliari, Stefano de Marchi, Marco Vianello. This is a version of ACM TOMS algorithm 886.

traffic_simulation, a program which simulates the cars waiting to get through a traffic light.

treepack, a library which carries out computations on trees, a simple kind of graph that is minimally connected.

tri_surface_io, a library which reads and writes the 3D graphics information in a tri_surface file;

tri_surface_to_obj, a program which reads a tri_surface dataset and extracts the surface mesh data as an OBJ file.

tri_surface_to_ply, a program which converts a tri_surface dataset to a dataset suitable for storage as a PLY file.

tri_surface_to_stla, a program which reads a tri_surface dataset and extracts the surface mesh data as an ASCII stereolithography (STL) file.

triangle_display, a program which displays the nodes and elements of a triangulation on the MATLAB graphics screen, assuming the data has been stored in NODE and ELE files by the triangle program.

triangle_dunavant_rule, a library which defines Dunavant quadrature rules over the interior of a triangle in 2D.

triangle_exactness, a program which tests the polynomial exactness of a quadrature rule over the interior of a triangle in 2D.

triangle_fekete, a library which sets up one of seven Fekete rules for interpolation or quadrature over the interior of a triangle in 2D.

triangle_grid, a library which computes a grid of points over the interior of a triangle in 2D.

triangle_histogram, a program which computes histograms of data over the interior of a unit triangle in 2D.

triangle_integrals, a library which returns the exact value of the integral of any monomial over the interior of the unit triangle in 2D.

triangle_lyness_rule, a library which returns Lyness-Jespersen quadrature rules over the interior of a triangle in 2D;

triangle_monte_carlo, a library which uses the Monte Carlo method to estimate an integral over the interior of a triangle in 2D.

triangle_ncc_rule, a library which defines Newton-Cotes closed (NCC) quadrature rules over the interior of a triangle in 2D.

triangle_nco_rule, a library which defines Newton-Cotes open (NCO) quadrature rules over the interior of a triangle in 2D.

triangle_properties, a program which computes properties, including angles, area, centroid, circumcircle, edge lengths, incircle, orientation, orthocenter, and quality, of a triangle in 2D.

triangle_svg, a library which uses Scalable Vector Graphics (SVG) to plot a triangle and any number of points, to illustrate quadrature rules and sampling techniques.

triangle_symq_rule, a library which returns efficient symmetric quadrature rules, with exactness up to total degree 50, over the interior of a triangle in 2D, by Hong Xiao and Zydrunas Gimbutas.

triangle_wandzura_rule, a library which returns quadrature rules of exactness 5, 10, 15, 20, 25 and 30 over the interior of the triangle in 2D.

triangulate, a program which triangulates a polygonal region, based on a C program by Joseph ORourke;

triangulation, a library which computes the triangulation of a set of points in the plane, and performs various operations using a triangulation, including searching a Delaunay triangulation to find which triangle contains a given point.

triangulation_boundary_edges, a program which reads data defining a triangulation, determines which edges lie on the boundary, organizes them into connected components, and writes this information to a file.

triangulation_boundary_nodes, a program which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file;

triangulation_corner, a program which modifies triangulations in which one or more triangles have more than one boundary edge.

triangulation_l2q, a program which reads information about a 3-node (linear) triangulation and creates data defining a corresponding 6-node (quadratic) triangulation;

triangulation_mask, a program which reads a triangulation and calls a user-supplied routine to consider each triangle for deletion;

triangulation_node_to_element, a program which reads files describing a set of nodes, their triangulation, and the value of one or more quantities at each node, and outputs a file that averages the quantities for each element. This operation in effect creates an order1 finite element model of the data.

triangulation_refine_local, a program which refines a triangulation locally; a single triangular element is replaced by four smaller triangles, and neighboring information is updated.

triangulation_svg, a program which creates an SVG image of a triangulation, which can be displayed by a web browser.

triangulation_t3_to_t4, a program which reads information about a 3-node T3 triangulation and creates data defining a corresponding 4-node T4 triangulation;

triangulation_to_gmsh, a program which reads information defining a triangulation, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding Gmsh mesh file.

triangulation_to_xml, a program which reads a file of node coordinates and a file of elements defined by node indices, and creates a corresponding DOLFIN XML mesh file.

triangulation_triangle_neighbors, a program which reads data defining a triangulation, finds the three neighbor triangles for each triangle, and writes them to a file;

truel_simulation, a program which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.

truncated_normal, a library which works with the truncated normal distribution over [A,B], or [A,+oo) or (-oo,B], returning the probability density function (PDF), the cumulative density function (CDF), the inverse CDF, the mean, the variance, and sample values.

truncated_normal_rule, a program which computes a quadrature rule for a normal probability density function (PDF), sometimes called a Gaussian distribution, that has been truncated to [A,+oo), (-oo,B] or [A,B].

truncated_normal_sparse_grid, a program which computes a sparse grid based on a normal probability density function (PDF), also called a Gaussian distribution, that has been truncated to [A,+oo), (-oo,B] or [A,B].

tsearch, a library which compares several replacements for MATLAB’s obsolete tsearch() function, which searched a Delaunay triangulation to find the triangle that encloses a given point.

tsg, programs which demonstrate the use of the TasmanianSparseGrid (TSG) package, which implements routines for working with sparse grids, to efficiently estimate integrals or compute interpolants of scalar functions of multidimensional arguments, by Miroslav Stoyanov.

tsp_brute, a program which reads a file of city-to-city distances and solves a (small!) traveling salesperson problem (TSP), using brute force.

van_der_corput_dataset, a program which creates N elements of a van der Corput sequence and writes them to a file.

vandermonde, a library which implements the Bjork-Pereyra algorithm for accurate solution of linear systems involving the Vandermonde matrix.

vandermonde_approx_1d, a library which finds a polynomial approximant to data y(x) of a 1D argument by setting up and solving an overdetermined linear system for the polynomial coefficients involving the Vandermonde matrix.

vandermonde_approx_2d, a library which finds a polynomial approximant p(x,y) to data z(x,y) of a 2D argument by setting up and solving an overdetermined linear system for the polynomial coefficients involving the Vandermonde matrix.

vandermonde_interp_1d, a library which finds a polynomial interpolant to data y(x) of a 1D argument by solving a linear system for the polynomial coefficients involving the Vandermonde matrix.

vandermonde_interp_2d, a library which finds a polynomial interpolant to data z(x,y) of a 2D argument by solving a linear system for the polynomial coefficients involving the Vandermonde matrix.

voronoi_display, a program which computes the exact Voronoi diagram using geompack, and displays it.

voronoi_mountains, a program which makes a mountain plot of a Voronoi diagram, that is, a surface plot of the distance from each point to its nearest Voronoi generator.

voronoi_neighbors, a program which is given a set of points in the plane and determines the Voronoi adjacency structure, that is, which points share an edge of the Voronoi diagram.

voronoi_plot, a program which estimates the Voronoi neighborhoods of points using sampling, and with a distance based on the L1, L2, LInfinity or arbitrary LP norms;

vpa, programs which use the Variable Precision Arithmetic (VPA) feature of the Symbolic Math Toolbox to compute arbitrary precision quantities.

walsh, a library which implements versions of the Walsh and Haar transforms.