P>
Monkey's audio is a lossless audio compressor. Think of it as an enhanced zip that will achieve ~30% reduction in size on your music files. The only thing you lose with this format is size. The files that Monkey's Audio create carry the extension of .ape and are still playable in most mp3 players via a plugin. APE files can also contain tags (ID3 V1.1 or APE tags) for easier organization of your music collection. Monkey's Audio is nearly perfect for anyone who is into archiving their music, perfect quality, every time. Monkey's Audio also sports the smallest file sizes of any lossless compressor around as well as the fastest encoding times. Monkey's Audio has four compression modes based on how long you want to wait for your file to be finished. They are: fast, normal, high and very high. As you'd expect, the fast mode is faster than very high but achieves poorer compression ratios. MA also has seamless seeking unlike many other lossless compressors. - Peter Reurich
A collection of interpolators and approximators for 1-D, 2-D and 3-D data.
The input for the interpolation is a set of randomly-spaced two-dimensional coordinates with functional values at those coordinates; the output is a set of interpolated function values at coordinates in a user-specified rectangular grid. The coordinates in the output grid must be monotone increasing in each coordinate direction, but need not be uniformly spaced. It is also possible to interpolate at a single point.
SCRIP is a software package which computes addresses and weights for remapping and interpolating fields between grids in spherical coordinates. It was written originally for remapping fields to other grids in a coupled climate model, but is sufficiently general that it can be used in other applications as well. The package should work for any grid on the surface of a sphere. SCRIP currently supports four remapping options:
A tool (written in FORTRAN-90) for data transfer of gridded 2- and 3-dimensional (spatial) geophysical/geochemical scalar fields between grids of different resolutions. The algorithm handles data on rectangular latitude/longitude grids (not necessarily evenly spaced) and vertical pressure hybrid grids of arbitrary resolution. The input/output data format is netCDF.
For orthogonal grids which are nonuniform or have different boundaries:
Subroutines for transferring values between one dimensional arrays defined on grids which are nonuniform or do not subdivide the same interval or both. Linear or cubic interpolation can be selected.
Subroutines for transferring values between two dimensional arrays defined on orthogonal grids which are nonuniform or do not subdivide the same region or both. Linear or cubic interpolation can be selected in each dimension. File rgrd1.f must be loaded with rgrd2.f.
OUTPUT:
Subroutines for transferring values between three dimensional arrays defined on orthogonal grids which are nonuniform or do not subdivide the same region or both. Linear or cubic interpolation can be selected in each dimension. Files rgrd2.f,rgrd1.f must be loaded with rgrd3.f.
Subroutines for transferring values between four dimensional arrays defined on orthogonal grids which are nonuniform or do not subdivide the same region or both. Linear or cubic interpolation can be selected in each dimension. Files rgrd3.f,rgrd2.f,rgrd1.f must be loaded with rgrd4.f
For uniform orthogonal grids with the same boundaries:
http://www.math.iastate.edu/burkardt/f_src/bivar/bivar.html
BIVAR accepts a set of (X,Y) data points scattered in 2D, with associated Z data values, and is able to construct a smooth interpolation function Z(X,Y), which agrees with the given data, and can be evaluated at other points in the plane.
References:
Program bivar.f90
Input:
Output:
Other:
Program bivar_prb.f90 - sample problem
Program bivar_prb.out - sample problem output
"The program regrid is used to take data at irregular spacing (e.g. met. station data at the locations available) or regular gridded data at a different resolution than the grid you want (e.g. raw data comes on an 80 km square grid, and you want 1/4 degree lat/lon grid). The program reads two information files, and then regrids the raw input data to a lat/lon grid at a resolution chosen by the user. The interpolation routine used is the Synap algorithm. Any number of nearest neighbors can be specified for the interpolation routine. The program searches out the nearest neighbors from the station list and compensates automatically for missing data identified by a void marker."
FIELDS:
NDP = number of input points
XD,YD,ZD = 1-D arrays containing the x- and y-coordinates and z values
NIP = number of output points
XI,YI = 1-D arrays containing the x- and y-coordinates of output points
ZI = 1-D array containing interpolated z values
http://math.nist.gov/toms/V22.html
An algorithm for smooth surface fitting for scattered data. It has the accuracy of a cubic polynomial in most cases and is a local, triangle-based algorithm. The method used consists of the following steps:
The SDBI3P/SDSF3P package requires 14 subprograms included in TRIPACK. The 14 subprograms are ADDNOD, BDYADD, CRTRI, INDXCC, INSERT, INTADD, LEFT, LSTPRT, STORE, SWAP, SWPTST, TRFIND, TRLIST and TRMESH. All of these are included in the file available at NetLib.
Master subroutine that performs bivariate interpolation, i.e. estimates the z values at the specified points in the x-y plane.
Performs bivariate interpolation when the data points are scattered in the x-y plane. It is based on the revised Akima method that has the accuracy of a cubic (third- degree) polynomial.
Input arguments:
Output arguments:
Other arguments:
The very first call to this subroutine and the call with a new NDP value or new XD and YD arrays must be made with MD=1. The call with MD=2 must be preceded by another call with the same NDP value and same XD and YD arrays. The call with MD=3 must be preceded by another call with the same NDP value and same XD, YD, and ZD arrays. Between the call with MD=2 and its preceding call, the IWK array must not be disturbed. Between the call with MD=3 and its preceding call, the WK and IWK arrays must not be disturbed.
This subroutine calls the SDTRAN, SDPD3P, SDLCTN, and SDPLNL subroutines.
It also calls TRMESH from the TRIPACK package of ACM Algorithm 751 by R. J. Renka. The TRMESH subroutine in turn calls either directly or indirectly 12 other subprograms included in the package. In addition, a newly added routine, GRADC, is called to compute partial derivatives at those nodes for which the cubic fit failed due to ill-conditioning.
A master subroutine that performs surface fitting, i.e. estimates the z values at the specified rectangular grid points in the x-y plane and generates a 2-D array containing these estimated z values.
Triangulates the data area in the x-y plane with a scattered data point set. It divides the data area into a number of triangles and determines line segments that form the border of the data area.
Triangulates the data area that is a convex hull of the scattered data points in the x-y plane. It divides the data area into a number of triangles and determines line segments that form the border of the data area.
Removes thin triangles along the border line of triangulation.
Estimates partial derivatives of the first and second orders at the data points for bivariate interpolation and surface fitting for scattered data. In most cases, this subroutine has the accuracy of a cubic (third-degree) polynomial.
Selects, at each of the data points, nine data points closest to it.
Calculates, for each data point, coefficients of the third-degree polynomial for z(x,y) fitted to the set of 10 data points consisting of the data point in question and nine data points closest to it.
Solves a set of linear equations.
Performs the least squares fit of a linear surface (plane) to a data point set consisting of the data point in question and several data points closest to it used in the SDCF3P subroutine.
Locates points in a scattered data point set in the x-y plane, i.e., determines to which triangle each of the points to be located belongs. When a point to be located does not lie inside the data area, this subroutine determines the border line segment when the point lies in an outside rectangle, in an outside triangle, or in the overlap of two outside rectangles.
Determines a polynomial in x and y for each triangle or rectangle in the x-y plane and calculates the z value by evaluating the polynomial for the desired points, for bivariate interpolation and surface fitting for scattered data.
Given a Delaunay triangulation of N points in the plane with associated data values Z, this subroutine estimates first and second partial derivatives at node K. The der- ivatives are taken to be the partials at K of a cubic function which interpolates Z(K) and fits the data values at a set of nearby nodes in a weighted least squares sense.
Constructs the Givens plane rotation.
Applies the Givens rotation to a matrix.
Sets up the I-th row of an augmented regression matrix for a weighted least squares fit of a cubic function f(x,y) to a set of data values z, where f(XK,YK) = ZK.
Provides for creation of a constrained Delaunay triangulation which, in some sense, covers an arbitrary connected region R rather than the convex hull of the nodes.
Given a triangulation of N nodes in the plane created by subroutine TRMESH or TRMSHR, this subroutine updates the data structure with the addition of a new node in position K.
Adds a boundary node to a triangulation of a set of points in the plane.
Given a triangulation of N points in the plane, this subroutine returns an array containing the indexes, in counterclockwise order, of the nodes on the boundary of the convex hull of the set of points.
Given three vertices defining a triangle, this subroutine returns the circumcenter, circumradius, signed triangle area, and, optionally, the aspect ratio of the triangle.
Deletes a boundary arc from a triangulation. It may be used to remove a null triangle from the convex hull boundary.
Deletes a neighbor NB from the adjacency list of node N0 (but N0 is not deleted from the adjacency list of NB) and, if NB is a boundary node, makes N0 a boundary node.
Deletes node K (along with all arcs incident on node K) from a triangulation of N nodes in the plane, and inserts arcs as necessary to produce a triangulation of the remaining N-1 nodes.
Given a triangulation of N nodes and a pair of nodal indexes IN1 and IN2, this routine swaps arcs as necessary to force IN1 and IN2 to be adjacent.
Given a triangulation of N nodes and an array NPTS containing the indexes of L-1 nodes ordered by distance from NPTS(1), this subroutine sets NPTS(L) to the index of the next node in the sequence -- the node, other than NPTS(1), ...,NPTS(L-1), which is closest to NPTS(1).
Inserts K as a neighbor of N1 following N2, where LP is the LIST pointer of N2 as a neighbor of N1.
Adds an interior node to a triangulation of a set of points in the plane. The data structure is updated with the insertion of node KK into the triangle whose vertices are I1, I2, and I3.
Given a set of NA triangulation arcs, this subroutine optimizes the portion of the triangulation consisting of the quadrilaterals (pairs of adjacent triangles) which have the arcs as diagonals by applying the circumcircle test and appropriate swaps to the arcs.
Performs an in-place permutation of a vector.
Uses an order N*LOG(N) quick sort to C sort the real array X into increasing order.
Uses an order N*LOG(N) quick sort to reorder the real array A into increasing order.
Given a triangulation of a set of points in the plane, this subroutine replaces a diagonal arc in a strictly convex quadrilateral (defined by a pair of adjacent tri- angles) with the other diagonal.
Locates a point P relative to a triangulation created by subroutine TRMESH or TRMSHR. If P is contained in a triangle, the three vertex indexes are returned. Otherwise, the indexes of the rightmost and leftmost visible boundary nodes are returned.
Converts a triangulation data structure from the linked list created by subroutine TRMESH or TRMSHR to a triangle list.
Given a triangulation of a set of points in the plane, this subroutine prints the triangle list created by subroutine TRLIST and, optionally, the nodal coordinates on logical unit LOUT. The numbers of boundary nodes, triangles, and arcs, and the constraint region triangle indexes, if any, are also printed.
Creates a Delaunay triangulation of a set of N arbitrarily distributed points in the plane referred to as nodes.
Creates a Delaunay triangulation of a set of N nodes in the plane, where the nodes are the vertices of an NX by NY skewed rectangular grid with the natural ordering.
Given a triangulation of a set of points in the plane, this subroutine prints the adjacency lists and, optionally, the nodal coordinates on logical unit LOUT. The list of neighbors of a boundary node is followed by index 0. The numbers of boundary nodes, triangles, and arcs, and the constraint curve starting indexes, if any, are also printed.
http://www.netlib.org/fitpack/
Determines the parameters necessary to compute an interpolatory spline under tension through a sequence of functional values. The slopes at the two ends of the curve may be specified or omitted. For actual computation of points on the curve it is necessary to call the function curv2.
Interpolates a curve at a given point using a spline under tension. The subroutine curv1 should be called earlier to determine certain necessary parameters.
On input:
The parameters n, x, y, yp, and sigma should be input unaltered from the output of curv1.
On output:
This function reference modules intrvl and snhcsh.
Differentiates a curve at a given point using a spline under tension. The subroutine curv1 should be called earlier to determine certain necessary parameters.
On input:
The parameters n, x, y yp, and sigma should be input unaltered from the output of curv1.
On output:
This function reference modules intrvl and snhcsh.
Integrates a curve specified by a spline under tension between two given limits. The subroutine curv1 should be called earlier to determine necessary parameters.
On input:
The parameters n, x, y, yp, and sigma should be input unaltered from the output of curv1.
On output:
This function reference modules intrvl and snhcsh.
Determines the parameters necessary to compute a smoothing spline under tension. For actual computation of points on the curve it is necessary to call the function curv2. the determination of the curve is performed by subroutine curvss, the subroutine curvs only decomposes the workspace for curvss.
Determines the parameters necessary to compute a periodic interpolatory spline under tension through a sequence of functional values. For actual ends of the curve may be specified or omitted. For actual computation of points on the curve it is necessary to call the function curvp2.
Interpolates a curve at a given point using a periodic spline under tension. The subroutine curvp1 should be called earlier to determine certain necessary parameters.
On input:
the parameters n, x, y, p, yp, and sigma should be input c unaltered from the output of curvp1.
On output:
This function references package modules intrvp and snhcsh.
Determines the parameters necessary to compute a periodic smoothing spline under tension. For actual computation of points on the curve it is necessary to call the function curvp2. The determination of the curve is performed by subroutine curvpp, the subroutin curvps only decomposes the workspace for curvpp.
Determines the parameters necessary to compute a spline under tension forming a curve in the plane and passing through a sequence of pairs (x(1),y(1)), ...,(x(n),y(n)). For actual computation of points on the c curve it is necessary to call the subroutine kurv2.
Performs the mapping of points in the interval (0.,1.) onto a curve in the plane. The subroutine kurv1 should be called earlier to determine certain necessary parameters.
Performs the mapping of points in the interval (0.,1.) onto a curve in the plane. It also returns the first and second derivatives of the component functions. The subroutine kurv1 should be called earlier to determine certain necessary parameters.
Determines the parameters necessary to compute a spline under tension forming a closed curve in the plane and passing through a sequence of pairs (x(1),y(1)),...,(x(n),y(n)). For actual computation of points on the curve it is necessary to call the subroutine kurvp2.
Performs the mapping of points in the interval (0.,1.) onto a closed curve in the plane. The subroutine kurvp1 should be called earlier to determine certain necessary parameters.
Performs the mapping of points in the interval (0.,1.) onto a closed curve in the plane. It also returns the first and second derivatives of the component functions. The subroutine kurvp1 should be called earlier to determine certain necessary parameters.
Determines the parameters necessary to compute an interpolatory surface passing through a rect- angular grid of functional values. For actual mapping of points onto the surface it is necessary to call the function surf2.
Determines the coefficients c1, c2, and c3 used to determine endpoint slopes.
Determines the parameters necessary to compute a periodic smoothing spline under tension. For actual computation of points on the curve it is necessary to call the function curvp2.
Determines the parameters necessary to compute a smoothing spline under tension. For actual computation of points on the curve it is necessary to call the function curv2.
This subroutine returns approximations to sinhm(x) = sinh(x)/x-1, coshm(x) = cosh(x)-1, and coshmm(x) = (cosh(x)-1-x*x/2)/(x*x).
Computes the diagonal and superdiagonal terms of the tridiagonal linear system associated with spline under tension interpolation.
[ home ]