Menu

Tree [r12] /
 History

HTTPS access


File Date Author Commit
 COPYING 2009-08-30 qiqiwang [r1] First commit to sourceforge
 MANIFEST 2009-08-30 qiqiwang [r1] First commit to sourceforge
 Makefile 2013-06-21 qiqiwang [r12] Fixed bug in Makefile thanks to Georges Klein
 README 2009-10-01 qiqiwang [r6] Added error propagation mechanism, fixed P=N case
 formir.c 2009-10-01 qiqiwang [r6] Added error propagation mechanism, fixed P=N case
 mexmirbasis.c 2009-10-01 qiqiwang [r6] Added error propagation mechanism, fixed P=N case
 mir.c 2009-10-15 qiqiwang [r10] Corrected memory bugs. 1d fully working
 mir.h 2009-10-15 qiqiwang [r9] Debugging the auto gamma case, first time 2nd t...
 mir.py 2009-12-01 qiqiwang [r11] Fixed the bug on binomInv
 mirrecons.c 2009-10-15 qiqiwang [r10] Corrected memory bugs. 1d fully working
 pymir.c 2009-12-01 qiqiwang [r11] Fixed the bug on binomInv
 setup.py 2009-12-01 qiqiwang [r11] Fixed the bug on binomInv
 test.c 2009-12-01 qiqiwang [r11] Fixed the bug on binomInv
 test.f 2009-10-01 qiqiwang [r6] Added error propagation mechanism, fixed P=N case
 test.m 2009-10-01 qiqiwang [r6] Added error propagation mechanism, fixed P=N case
 test.py 2009-09-04 qiqiwang [r5] Bug fix on BetaGamma computation of multivariat...

Read Me

---------------------------------------------
DESCRIPTION
---------------------------------------------

This is an implementation of the high-order Multivariate Interpolation and
Regression schcme, developped by Qiqi Wang et. al.  The mathematical
formulation and some example usage of this scheme is described in the paper
"A High-Order Multi-Variate Approximation Scheme for Arbitrary Data Sets"
by Qiqi Wang et. al, submitted to the Journal of Computational Physics.

Information about this code can be found at http://mirscheme.sourceforge.net/


---------------------------------------------
PREREQUISITES
---------------------------------------------

Gnu Scientific Library:
http://www.gnu.org/software/gsl/

Python 2.5 or newer compatible version (Optional for Python interface):
http://www.python.org/

Numpy 1.2 or newer compatible version (Optional for Python interface):
http://numpy.scipy.org/

Matplotlib 0.98 or newer compatible version (Optional for test scripts of
Python interface):
http://matplotlib.sourceforge.net/


---------------------------------------------
INSTALLATION
---------------------------------------------

1. Edit the Makefile to specify:
    prefix -- the desired installation location,
    GSL_prefix -- where Gnu Scientific Library is located,
    CC -- C compiler,
    FC -- Fortran compiler,
    CFLAGS -- Compiler flags,
    LFLAGS -- Linker flags.

2. "make".

3. "make install"

4. (Optional) "make check" to build and run test scripts in C and Fortran.

5. (Optional for Python interface) "python setup.py build".
   Note: if it complains "cannot find Python.h", you need to install the
         Python header files. Either install Python from source file, or
         install the 'development' package, such as the 'python-dev'
         package in Ubuntu.

6. (Optional for Python interface) "python setup.py install",
   or "python setup.py install --prefix=(your location)" to install at
   non-standard locations.

7. (Optional for testing Python interface) "python test.py".


---------------------------------------------
USAGE
---------------------------------------------

This C implementation of the approximation has procedural interfaces in
both C and Fortran, plus an object oriented interface in Python.

C interface:
    Three functions should be mostly used.  The specification of these
    functions are given in mir.h.
    binomialInv:  Calculate the largest value of m such that
                  binomial(m, n) <= l
    mirBetaGamma: Automatically calculate the parameters of the
                  approximation scheme.
    mirBasis:     Calculate the values of the basis functions at
                  specified points.
    mirEvaluate:  Calculate the value of the approximation function
                  at specified points.

Fortran interface:
    The Fortran interface has four subroutines that accomplishes
    exactly the same work as the C functions.  The specification for
    these Fortran subroutines are the same as the C functions found
    at mir.h.  Sample usage is given in test.f.  The correspondence
    between Fortran subroutines and C functions is:
    BINOMIAL_INV(l, n, m) -- m = binomialInv(l, n),
    MIR_BETA_GAMMA(*)     -- mirBetaGamma(*),
    MIR_BASIS(*)          -- mirBasis(*),
    MIR_EVALUATE(*)       -- mirEvaluate(*).
    * All arguments are the same, the return value from C functions that
      indicates error status is ignored.

Python interface:
    The Python interface provides an Object Oriented way of accessing
    the approximation scheme.  This interface consists of a Python class
    mir.Mir, which exposes the functionality of the C code in a more
    user-friendly way.  Detailed specification of the interface
    can be found in mir.py.  This specification can also be obtained by
    "help(mir)" after "import mir" in Python command line.  Example usage
    of the Python interface can be found in test.py


---------------------------------------------
SUPPORT
---------------------------------------------

This code is maintained and supported by

Qiqi Wang
Assistant Professor of Aeronautics and Astronautics,
Massachusetts Institute of Technology,
Building 33, Room 408,
77 Massachusetts Ave,
Cambridge, MA 02139.

Email: qiqi@mit.edu
Phone: 617-253-0921

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.