aboutsummaryrefslogtreecommitdiff
path: root/LAPACKE/README
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2014-10-08 18:40:57 +0000
committerjulie <julielangou@users.noreply.github.com>2014-10-08 18:40:57 +0000
commit8d160e5f960b389ba6a4c0d5ffe767c7b762a9d3 (patch)
treeb6a093c3922c2c6c28d65393c42a31bc5779bf06 /LAPACKE/README
parentf04a5811b7233661a393718717041a5ba2384864 (diff)
Fixing folder uppercase / lower case issue - Thank you Don
Diffstat (limited to 'LAPACKE/README')
-rw-r--r--LAPACKE/README208
1 files changed, 208 insertions, 0 deletions
diff --git a/LAPACKE/README b/LAPACKE/README
new file mode 100644
index 00000000..343de50d
--- /dev/null
+++ b/LAPACKE/README
@@ -0,0 +1,208 @@
+-------------------------------------------------------------------------------
+ C Interface to LAPACK
+ README
+-------------------------------------------------------------------------------
+Introduction
+-------------------------------------------------------------------------------
+
+This library is a part of reference implementation for the C interface to
+LAPACK project according to the specifications described at the forum for
+the Intel(R) Math Kernel Library (Intel(R) MKL):
+http://software.intel.com/en-us/forums/showthread.php?t=61234
+
+This implementation provides a native C interface to LAPACK routines available
+at www.netlib.org/lapack to facilitate usage of LAPACK functionality
+for C programmers.
+This implementation introduces:
+- row-major and column-major matrix layout controlled by the first function
+ parameter;
+- an implementation with working arrays (middle-level interface) as well as
+ without working arrays (high-level interface);
+- input scalars passed by value;
+- error code as a return value instead of the INFO parameter.
+
+This implementation supports both the ILP64 and LP64 programming models,
+and different complex type styles: structure, C99.
+
+This implementation includes interfaces for the LAPACK-3.2.1 Driver and
+Computational routines only.
+
+-------------------------------------------------------------------------------
+Product Directories
+-------------------------------------------------------------------------------
+
+The installation directory of this package has the following structure:
+
+src - C interface source files
+utils - C interface auxiliary files
+include - header files for C interface
+
+-------------------------------------------------------------------------------
+Installation
+-------------------------------------------------------------------------------
+
+The reference code for the C interface to LAPACK is built similarly to the
+Basic Linear Algebra Subprograms (BLAS) and LAPACK. The build system produces
+a static binary lapacke.a.
+
+You need to provide a make.inc file in the top directory that defines the
+compiler, compiler flags, names for binaries to be created/linked to. You may
+choose the appropriate LP64/ILP64 model, convenient complex type style,
+LAPACKE name pattern, and/or redefine system malloc/free in make.inc. Several
+examples of make.inc are provided.
+
+After setting up the make.inc, you can build C interface to LAPACK by typing
+
+make lapacke
+
+-------------------------------------------------------------------------------
+Handling Complex Types
+-------------------------------------------------------------------------------
+
+The interface uses complex types lapack_complex_float/lapack_complex_double.
+You have several options to define them:
+
+1) C99 complex types (default):
+
+#define lapack_complex_float float _Complex
+#define lapack_complex_double double _Complex
+
+2) C structure option (set by enabling in the configuration file):
+-DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE
+
+typedef struct { float real, imag; } _lapack_complex_float;
+typedef struct { double real, imag; } _lapack_complex_double;
+#define lapack_complex_float _lapack_complex_float
+#define lapack_complex_double _lapack_complex_double
+
+3) C++ complex types (set by enabling in the configuration file):
+-DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_CPP
+
+#define lapack_complex_float std::complex<float>
+#define lapack_complex_double std::complex<double>
+
+You have to compile the interface with C++ compiler with C++ types.
+
+4) Custom complex types:
+-DLAPACK_COMPLEX_CUSTOM
+
+To use custom complex types, you need to:
+- Define lapack_complex_float/lapack_complex_double types on your own.
+- Optionally define lapack_make_complex_float/lapack_make_complex_double_real
+ functions if you want to build the testing suite supplied. Use these
+ functions for the testing system. Their purpose is to make a complex value of
+ a real part re, imaginary part im. The prototypes are as follows:
+
+ lapack_complex_float lapack_make_complex_float( float re, float im );
+ lapack_complex_double lapack_make_complex_double( double re, double im );
+
+-------------------------------------------------------------------------------
+Choosing ILP64 Data Model
+-------------------------------------------------------------------------------
+To choose ILP64 data model (set by enabling in the configuration file), use the
+following options:
+
+-DHAVE_LAPACK_CONFIG_H -DLAPACK_ILP64
+
+-------------------------------------------------------------------------------
+Using Predicate Functions
+-------------------------------------------------------------------------------
+
+The functions
+
+lapacke_?gees/lapacke_?gees_work
+lapacke_?geesx/lapacke_?geesx_work
+lapacke_?geev/lapacke_?geev_work
+lapacke_?geevx/lapacke_?geevx_work
+
+require the pointer to a predicate function as an argument of a predefined type
+such as:
+
+typedef lapack_logical (*LAPACK_S_SELECT2) ( const float*, const float* );
+
+The purpose and format of these predicate functions are described in the LAPACK
+documentation. This interface passes the pointer to the corresponding LAPACK
+routine as it is.
+
+Be cautious with return values of the logical type if you link against LAPACK
+compiled with Fortran compiler. Whereas all non-zero values are treated as TRUE
+generally, some Fortran compilers may rely on a certain TRUE value, so you will
+have to use the same TRUE value in the predicate function to be consistent with
+LAPACK implementation.
+
+-------------------------------------------------------------------------------
+Implementation Details
+-------------------------------------------------------------------------------
+
+The current C interface implementation consists of wrappers to LAPACK routines.
+The row-major matrices are transposed on entry to and on exit from the LAPACK
+routine, if needed. Top-level interfaces additionally allocate/deallocate
+working space on entry to and on exit from the LAPACK routine.
+
+Because of possible additional transpositions, a routine called with
+this interface may require more memory space and run slower than the
+corresponding LAPACK routine.
+
+-------------------------------------------------------------------------------
+Disclaimer and Legal Information
+-------------------------------------------------------------------------------
+
+INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R)
+PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO
+ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT
+AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS,
+INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS
+OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS
+INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR
+PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR
+OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING
+BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY
+APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A
+SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.
+
+Intel may make changes to specifications and product descriptions at
+any time, without notice. Designers must not rely on the absence or
+characteristics of any features or instructions marked "reserved" or
+"undefined." Intel reserves these for future definition and shall have
+no responsibility whatsoever for conflicts or incompatibilities
+arising from future changes to them. The information here is subject
+to change without notice. Do not finalize a design with this
+information.
+
+The products described in this document may contain design defects or
+errors known as errata which may cause the product to deviate from
+published specifications. Current characterized errata are available
+on request.
+
+Contact your local Intel sales office or your distributor to obtain
+the latest specifications and before placing your product order.
+Copies of documents which have an order number and are referenced in
+this document, or other Intel literature, may be obtained by calling
+1-800-548-4725, or go to http://www.intel.com/design/literature.htm
+
+Intel processor numbers are not a measure of performance. Processor
+numbers differentiate features within each processor family, not
+across different processor families. See
+http://www.intel.com/products/processor_number for details.
+
+This document contains information on products in the design phase of
+development.
+
+BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Atom,
+Centrino Atom Inside, Centrino Inside, Centrino logo, Core Inside,
+FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486,
+IntelDX2, IntelDX4, IntelSX2, Intel Atom, Intel Atom Inside, Intel
+Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap
+ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure,
+Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv,
+Intel vPro, XScale, IPLink, Itanium, Itanium Inside, MCS, MMX, Oplus,
+OverDrive, Intel PDCharm, Pentium, Pentium Inside, skoool, Sound Mark,
+The Journey Inside, VTune, Xeon, and Xeon Inside are trademarks of
+Intel Corporation in the U.S. and other countries.
+
+
+* Other names and brands may be claimed as the property of others.
+
+Copyright (C) 2011, Intel Corporation. All rights reserved.
+
+