ADDED Lapack and changed project structure

pull/6/head
Dsplib 2019-10-10 21:02:33 +03:00
rodzic 2a01069783
commit bbfa68d4e4
2389 zmienionych plików z 845766 dodań i 99 usunięć

3
.gitignore vendored
Wyświetl plik

@ -5,4 +5,5 @@
*.txt
*.dat
*.bin
*.csv
*.csv
*.a

Wyświetl plik

@ -1,22 +1,5 @@
ifeq ($(OS),Windows_NT)
MAKE = mingw32-make
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
MAKE = make
else ifeq ($(UNAME_S),Darwin)
MAKE = make
endif
endif
include Makefile.dirs
include make.inc
all:
$(MAKE) -f Makefile.dspl
@ -34,5 +17,12 @@ clean:
$(MAKE) -f Makefile.dspl clean
$(MAKE) -f Makefile.verif clean
$(MAKE) -f Makefile.examples clean
rm -f $(BLAS_SRC_DIR)/*.o
rm -f $(LAPACK_SRC_DIR)/*.o
clean_all:
$(MAKE) clean
rm -f $(BLAS_LIB_DIR)/*.a
rm -f $(LAPACK_LIB_DIR)/*.a

Wyświetl plik

@ -1,27 +0,0 @@
CC = gcc
FORTRAN = gfortran
AR = ar
INC_DIR = include
RELEASE_DIR = release/lib
ifeq ($(OS),Windows_NT)
DSPL_LIBNAME = libdspl.dll
DEF_OS = WIN_OS
LFLAGS = -lm
else
UNAME_S := $(shell uname -s)
UNAME_P := $(shell uname -p)
ifeq ($(UNAME_S),Linux)
DSPL_LIBNAME = libdspl.so
DEF_OS = LINUX_OS
LFLAGS = -lm -ldl
else ifeq ($(UNAME_S),Darwin)
DSPL_LIBNAME = libdspl.so
DEF_OS = LINUX_OS
LFLAGS = -lm -ldl
endif
endif

Wyświetl plik

@ -1,56 +1,30 @@
LIB_DIR = dspl
include Makefile.dirs
include make.inc
# DSPL source and obj file path
DSPL_SRC_DIR = $(LIB_DIR)/dspl_src
DSPL_OBJ_DIR = $(LIB_DIR)/dspl_obj
# BLAS source and obj file path
BLAS_SRC_DIR = $(LIB_DIR)/blas_src
BLAS_OBJ_DIR = $(LIB_DIR)/blas_obj
#common source for DSPL and examples
COMMON_SRC_DIR = $(COMMON_DIR)/src
LIB_NAME = $(DSPL_LIBNAME)
# C-compiler flags
CFLAGS = -c -fPIC -Wall -O3 -I$(INC_DIR) -DBUILD_LIB -D$(DEF_OS)
#fortran compiler flags
FFLAGS = -O3
# DSPL src and obj files list
DSPL_SRC_FILES = $(wildcard $(DSPL_SRC_DIR)/*.c)
DSPL_OBJ_FILES = $(addprefix $(DSPL_OBJ_DIR)/,$(notdir $(DSPL_SRC_FILES:.c=.o)))
# BLAS src and obj files list
BLAS_SRC_FILES = $(wildcard $(BLAS_SRC_DIR)/*.f)
BLAS_OBJ_FILES = $(addprefix $(BLAS_OBJ_DIR)/,$(notdir $(BLAS_SRC_FILES:.f=.o)))
BLAS_LIB = $(BLAS_OBJ_DIR)/libblas.a
all: $(RELEASE_DIR)/$(LIB_NAME)
$(RELEASE_DIR)/$(LIB_NAME): $(DSPL_OBJ_FILES) $(BLAS_LIB)
$(CC) -shared -o $(RELEASE_DIR)/$(LIB_NAME) $(DSPL_OBJ_FILES) -lm -L$(BLAS_OBJ_DIR) -lblas
$(RELEASE_DIR)/$(LIB_NAME): $(DSPL_OBJ_FILES) $(BLAS_LIB_NAME) $(LAPACK_LIB_NAME)
$(CC) -shared -o $(RELEASE_DIR)/$(LIB_NAME) $(DSPL_OBJ_FILES) -lm -L$(BLAS_LIB_DIR) -lblas -L$(LAPACK_LIB_DIR) -llapack
$(DSPL_OBJ_DIR)/%.o:$(DSPL_SRC_DIR)/%.c
$(CC) $(CFLAGS) $< -o $@ -lm
$(BLAS_LIB_NAME):
$(MAKE) -C $(BLAS_SRC_DIR)
$(BLAS_OBJ_DIR)/libblas.a: $(BLAS_OBJ_FILES)
$(AR) rcs $(BLAS_LIB) $(BLAS_OBJ_FILES)
$(BLAS_OBJ_DIR)/%.o:$(BLAS_SRC_DIR)/%.f
$(FORTRAN) $(FFLAGS) -c $< -o $@
$(LAPACK_LIB_NAME):
$(MAKE) -C $(LAPACK_SRC_DIR)
clean:

Wyświetl plik

@ -3,7 +3,7 @@ SRC_DIR = $(PRJ_DIR)/src
BIN_DIR = $(PRJ_DIR)/bin
include Makefile.dirs
include make.inc
DSPL_C_FILE = $(INC_DIR)/dspl.c
DSPL_O_FILE = $(PRJ_DIR)/obj/dspl.o

Wyświetl plik

@ -3,7 +3,7 @@ SRC_DIR = $(PRJ_DIR)/src
BIN_DIR = $(PRJ_DIR)/bin
include Makefile.dirs
include make.inc
DSPL_C_FILE = $(INC_DIR)/dspl.c
DSPL_O_FILE = $(PRJ_DIR)/obj/dspl.o

Wyświetl plik

@ -819,7 +819,8 @@ INPUT = ru \
../examples/src \
../examples/bin/gnuplot \
../examples/bin/img \
../dspl/dspl_dox/ru
../dspl/dspl_dox/ru \
../dspl/blas_src
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses

Wyświetl plik

@ -28,17 +28,21 @@ long_line_behaviour=1
long_line_column=72
[files]
current_page=4
FILE_NAME_0=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Csrc%5Cfilter_ap.c;0;2
FILE_NAME_1=360;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Ccheby_poly1_test.c;0;2
FILE_NAME_2=3040;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Csrc%5Ccheby.c;0;2
FILE_NAME_3=507;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Ciir_test.c;0;2
FILE_NAME_4=80;None;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Cbin%5Cgnuplot%5Ciir_test.plt;0;2
FILE_NAME_5=1097;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_dirichlet_ex.c;0;2
FILE_NAME_6=2672;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_pimp_spectrum.c;0;2
FILE_NAME_7=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_rec.c;0;2
FILE_NAME_8=4814;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Csrc%5Cfourier_series.c;0;2
FILE_NAME_9=5801;None;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdox%5Cru%5Cfourier_series.dox;0;2
current_page=7
FILE_NAME_0=360;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Ccheby_poly1_test.c;0;2
FILE_NAME_1=507;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Ciir_test.c;0;2
FILE_NAME_2=80;None;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Cbin%5Cgnuplot%5Ciir_test.plt;0;2
FILE_NAME_3=1097;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_dirichlet_ex.c;0;2
FILE_NAME_4=2672;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_pimp_spectrum.c;0;2
FILE_NAME_5=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_rec.c;0;2
FILE_NAME_6=12388;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Carray.c;0;2
FILE_NAME_7=424;C++;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cblas.h;0;2
FILE_NAME_8=1737;F77;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cblas_src%5Cddot.f;0;2
FILE_NAME_9=51351;C++;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cinclude%5Cdspl.h;0;2
FILE_NAME_10=13061;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cinclude%5Cdspl.c;0;2
FILE_NAME_11=323;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Carray_test.c;0;2
FILE_NAME_12=1454;F77;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cblas_src%5Cdasum.f;0;2
FILE_NAME_13=419;F77;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cblas_src%5Cdaxpy.f;0;2
[build-menu]
NF_00_LB=_Собрать

Wyświetl plik

@ -451,10 +451,9 @@ int DSPL_API vector_dot(double* x, double* y, int n, double* p)
return ERROR_PTR;
if(n<1)
return ERROR_SIZE;
/* double ddot_(int* n, double* dx, int* incx, double* dy, int* incy); */
*p = ddot_(&n, x, &inc, y, &inc);
//*p = 0;
return RES_OK;
}

Wyświetl plik

@ -1,5 +1,367 @@
#include <stdio.h>
#include <stdlib.h>
#ifndef BLAS_H
#define BLAS_H
#define FORTRAN_FUNC(FUNC) FUNC##_
int FORTRAN_FUNC(xerbla)(const char*, int*info, int);
float FORTRAN_FUNC(sdot) (int*, float*, int*, float*, int*);
float FORTRAN_FUNC(sdsdot)(int*, float*, float*, int*, float*, int*);
double FORTRAN_FUNC(dsdot) (int*, float*, int*, float*, int*);
double FORTRAN_FUNC(ddot) (int*, double*, int*, double*, int*);
double FORTRAN_FUNC(qdot) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(cdotuw) (int*, float*, int*, float*, int*, float*);
int FORTRAN_FUNC(cdotcw) (int*, float*, int*, float*, int*, float*);
int FORTRAN_FUNC(zdotuw) (int*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(zdotcw) (int*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(saxpy) (const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(daxpy) (const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qaxpy) (const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(caxpy) (const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(zaxpy) (const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xaxpy) (const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(caxpyc)(const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(zaxpyc)(const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xaxpyc)(const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(scopy) (int*, float*, int*, float*, int*);
int FORTRAN_FUNC(dcopy) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(qcopy) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(ccopy) (int*, float*, int*, float*, int*);
int FORTRAN_FUNC(zcopy) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xcopy) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(sswap) (int*, float*, int*, float*, int*);
int FORTRAN_FUNC(dswap) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(qswap) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(cswap) (int*, float*, int*, float*, int*);
int FORTRAN_FUNC(zswap) (int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xswap) (int*, double*, int*, double*, int*);
float FORTRAN_FUNC(sasum) (int*, float*, int*);
float FORTRAN_FUNC(scasum)(int*, float*, int*);
double FORTRAN_FUNC(dasum) (int*, double*, int*);
double FORTRAN_FUNC(qasum) (int*, double*, int*);
double FORTRAN_FUNC(dzasum)(int*, double*, int*);
double FORTRAN_FUNC(qxasum)(int*, double*, int*);
int FORTRAN_FUNC(isamax)(int*, float*, int*);
int FORTRAN_FUNC(idamax)(int*, double*, int*);
int FORTRAN_FUNC(iqamax)(int*, double*, int*);
int FORTRAN_FUNC(icamax)(int*, float*, int*);
int FORTRAN_FUNC(izamax)(int*, double*, int*);
int FORTRAN_FUNC(ixamax)(int*, double*, int*);
int FORTRAN_FUNC(ismax) (int*, float*, int*);
int FORTRAN_FUNC(idmax) (int*, double*, int*);
int FORTRAN_FUNC(iqmax) (int*, double*, int*);
int FORTRAN_FUNC(icmax) (int*, float*, int*);
int FORTRAN_FUNC(izmax) (int*, double*, int*);
int FORTRAN_FUNC(ixmax) (int*, double*, int*);
int FORTRAN_FUNC(isamin)(int*, float*, int*);
int FORTRAN_FUNC(idamin)(int*, double*, int*);
int FORTRAN_FUNC(iqamin)(int*, double*, int*);
int FORTRAN_FUNC(icamin)(int*, float*, int*);
int FORTRAN_FUNC(izamin)(int*, double*, int*);
int FORTRAN_FUNC(ixamin)(int*, double*, int*);
int FORTRAN_FUNC(ismin)(int*, float*, int*);
int FORTRAN_FUNC(idmin)(int*, double*, int*);
int FORTRAN_FUNC(iqmin)(int*, double*, int*);
int FORTRAN_FUNC(icmin)(int*, float*, int*);
int FORTRAN_FUNC(izmin)(int*, double*, int*);
int FORTRAN_FUNC(ixmin)(int*, double*, int*);
float FORTRAN_FUNC(samax) (int*, float*, int*);
double FORTRAN_FUNC(damax) (int*, double*, int*);
double FORTRAN_FUNC(qamax) (int*, double*, int*);
float FORTRAN_FUNC(scamax)(int*, float*, int*);
double FORTRAN_FUNC(dzamax)(int*, double*, int*);
double FORTRAN_FUNC(qxamax)(int*, double*, int*);
float FORTRAN_FUNC(samin) (int*, float*, int*);
double FORTRAN_FUNC(damin) (int*, double*, int*);
double FORTRAN_FUNC(qamin) (int*, double*, int*);
float FORTRAN_FUNC(scamin)(int*, float*, int*);
double FORTRAN_FUNC(dzamin)(int*, double*, int*);
double FORTRAN_FUNC(qxamin)(int*, double*, int*);
float FORTRAN_FUNC(smax) (int*, float*, int*);
double FORTRAN_FUNC(dmax) (int*, double*, int*);
double FORTRAN_FUNC(qmax) (int*, double*, int*);
float FORTRAN_FUNC(scmax) (int*, float*, int*);
double FORTRAN_FUNC(dzmax) (int*, double*, int*);
double FORTRAN_FUNC(qxmax) (int*, double*, int*);
float FORTRAN_FUNC(smin) (int*, float*, int*);
double FORTRAN_FUNC(dmin) (int*, double*, int*);
double FORTRAN_FUNC(qmin) (int*, double*, int*);
float FORTRAN_FUNC(scmin) (int*, float*, int*);
double FORTRAN_FUNC(dzmin) (int*, double*, int*);
double FORTRAN_FUNC(qxmin) (int*, double*, int*);
int FORTRAN_FUNC(sscal) (int*, float*, float*, int*);
int FORTRAN_FUNC(dscal) (int*, double*, double*, int*);
int FORTRAN_FUNC(qscal) (int*, double*, double*, int*);
int FORTRAN_FUNC(cscal) (int*, float*, float*, int*);
int FORTRAN_FUNC(zscal) (int*, double*, double*, int*);
int FORTRAN_FUNC(xscal) (int*, double*, double*, int*);
int FORTRAN_FUNC(csscal)(int*, float*, float*, int*);
int FORTRAN_FUNC(zdscal)(int*, double*, double*, int*);
int FORTRAN_FUNC(xqscal)(int*, double*, double*, int*);
float FORTRAN_FUNC(snrm2) (int*, float*, int*);
float FORTRAN_FUNC(scnrm2)(int*, float*, int*);
double FORTRAN_FUNC(dnrm2) (int*, double*, int*);
double FORTRAN_FUNC(qnrm2) (int*, double*, int*);
double FORTRAN_FUNC(dznrm2)(int*, double*, int*);
double FORTRAN_FUNC(qxnrm2)(int*, double*, int*);
int FORTRAN_FUNC(srot) (int*, float*, int*, float*, int*, float*, float*);
int FORTRAN_FUNC(drot) (int*, double*, int*, double*, int*, double*, double*);
int FORTRAN_FUNC(qrot) (int*, double*, int*, double*, int*, double*, double*);
int FORTRAN_FUNC(csrot) (int*, float*, int*, float*, int*, float*, float*);
int FORTRAN_FUNC(zdrot) (int*, double*, int*, double*, int*, double*, double*);
int FORTRAN_FUNC(xqrot) (int*, double*, int*, double*, int*, double*, double*);
int FORTRAN_FUNC(srotg) (float*, float*, float*, float*);
int FORTRAN_FUNC(drotg) (double*, double*, double*, double*);
int FORTRAN_FUNC(qrotg) (double*, double*, double*, double*);
int FORTRAN_FUNC(crotg) (float*, float*, float*, float*);
int FORTRAN_FUNC(zrotg) (double*, double*, double*, double*);
int FORTRAN_FUNC(xrotg) (double*, double*, double*, double*);
int FORTRAN_FUNC(srotmg)(float*, float*, float*, float*, float*);
int FORTRAN_FUNC(drotmg)(double*, double*, double*, double*, double*);
int FORTRAN_FUNC(srotm) (int*, float*, int*, float*, int*, float*);
int FORTRAN_FUNC(drotm) (int*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(qrotm) (int*, double*, int*, double*, int*, double*);
/* Level 2 routines*/
int FORTRAN_FUNC(sger)(int*, int*, float*, float*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(dger)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(qger)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(cgeru)(int*, int*, float*, float*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(cgerc)(int*, int*, float*, float*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(zgeru)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(zgerc)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xgeru)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xgerc)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(sgemv)(const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(dgemv)(const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(qgemv)(const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(cgemv)(const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zgemv)(const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xgemv)(const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(strsv) (const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(dtrsv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qtrsv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(ctrsv) (const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(ztrsv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xtrsv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(stpsv) (char*, char*, char*, int*, float*, float*, int*);
int FORTRAN_FUNC(dtpsv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(qtpsv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(ctpsv) (char*, char*, char*, int*, float*, float*, int*);
int FORTRAN_FUNC(ztpsv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(xtpsv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(strmv) (const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(dtrmv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qtrmv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(ctrmv) (const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(ztrmv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xtrmv) (const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(stpmv) (char*, char*, char*, int*, float*, float*, int*);
int FORTRAN_FUNC(dtpmv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(qtpmv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(ctpmv) (char*, char*, char*, int*, float*, float*, int*);
int FORTRAN_FUNC(ztpmv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(xtpmv) (char*, char*, char*, int*, double*, double*, int*);
int FORTRAN_FUNC(stbmv) (char*, char*, char*, int*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(dtbmv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(qtbmv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(ctbmv) (char*, char*, char*, int*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(ztbmv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xtbmv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(stbsv) (char*, char*, char*, int*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(dtbsv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(qtbsv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(ctbsv) (char*, char*, char*, int*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(ztbsv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xtbsv) (char*, char*, char*, int*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(ssymv) (const char*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(dsymv) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(qsymv) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(sspmv) (char*, int*, float*, float*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(dspmv) (char*, int*, double*, double*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(qspmv) (char*, int*, double*, double*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(ssyr) (const char*, const int*, const float *, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(dsyr) (const char*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qsyr) (const char*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(ssyr2) (const char*, const int*, const float *, const float*, const int*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(dsyr2) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qsyr2) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(csyr2) (const char*, const int*, const float *, const float*, const int*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(zsyr2) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xsyr2) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(sspr) (char*, int*, float *, float*, int*, float*);
int FORTRAN_FUNC(dspr) (char*, int*, double*, double*, int*, double*);
int FORTRAN_FUNC(qspr) (char*, int*, double*, double*, int*, double*);
int FORTRAN_FUNC(sspr2) (char*, int*, float *, float*, int*, float*, int*, float*);
int FORTRAN_FUNC(dspr2) (char*, int*, double*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(qspr2) (char*, int*, double*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(cspr2) (char*, int*, float *, float*, int*, float*, int*, float*);
int FORTRAN_FUNC(zspr2) (char*, int*, double*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(xspr2) (char*, int*, double*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(cher) (char*, int*, float *, float*, int*, float*, int*);
int FORTRAN_FUNC(zher) (char*, int*, double*, double*, int*, double*, int*);
int FORTRAN_FUNC(xher) (char*, int*, double*, double*, int*, double*, int*);
int FORTRAN_FUNC(chpr) (char*, int*, float *, float*, int*, float*);
int FORTRAN_FUNC(zhpr) (char*, int*, double*, double*, int*, double*);
int FORTRAN_FUNC(xhpr) (char*, int*, double*, double*, int*, double*);
int FORTRAN_FUNC(cher2) (char*, int*, float *, float*, int*, float*, int*, float*, int*);
int FORTRAN_FUNC(zher2) (char*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(xher2) (char*, int*, double*, double*, int*, double*, int*, double*, int*);
int FORTRAN_FUNC(chpr2) (char*, int*, float *, float*, int*, float*, int*, float*);
int FORTRAN_FUNC(zhpr2) (char*, int*, double*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(xhpr2) (char*, int*, double*, double*, int*, double*, int*, double*);
int FORTRAN_FUNC(chemv) (const char*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zhemv) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xhemv) (const char*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(chpmv) (char*, int*, float*, float*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zhpmv) (char*, int*, double*, double*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xhpmv) (char*, int*, double*, double*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(snorm)(char*, int*, int*, float*, int*);
int FORTRAN_FUNC(dnorm)(char*, int*, int*, double*, int*);
int FORTRAN_FUNC(cnorm)(char*, int*, int*, float*, int*);
int FORTRAN_FUNC(znorm)(char*, int*, int*, double*, int*);
int FORTRAN_FUNC(sgbmv)(char*, int*, int*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(dgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(qgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(cgbmv)(char*, int*, int*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(ssbmv)(char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(dsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(qsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(csbmv)(char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(chbmv)(char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zhbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xhbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
/* Level 3 routines*/
int FORTRAN_FUNC(sgemm)(const char*, const char*, const int*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(dgemm)(const char*, const char*, const int*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(qgemm)(const char*, const char*, const int*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(cgemm)(const char*, const char*, const int*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zgemm)(const char*, const char*, const int*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xgemm)(const char*, const char*, const int*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(cgemm3m)(char*, char*, int*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zgemm3m)(char*, char*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xgemm3m)(char*, char*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(sge2mm)(char*, char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(dge2mm)(char*, char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(cge2mm)(char*, char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zge2mm)(char*, char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(strsm)(const char*, const char*, const char*, const char*, const int*, const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(dtrsm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qtrsm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(ctrsm)(const char*, const char*, const char*, const char*, const int*, const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(ztrsm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xtrsm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(strmm)(const char*, const char*, const char*, const char*, const int*, const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(dtrmm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(qtrmm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(ctrmm)(const char*, const char*, const char*, const char*, const int*, const int*, const float*, const float*, const int*, float*, const int*);
int FORTRAN_FUNC(ztrmm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(xtrmm)(const char*, const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, double*, const int*);
int FORTRAN_FUNC(ssymm)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(dsymm)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(qsymm)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(csymm)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zsymm)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xsymm)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(csymm3m)(char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zsymm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xsymm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(ssyrk)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(dsyrk)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(qsyrk)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(csyrk)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zsyrk)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xsyrk)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(ssyr2k)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(dsyr2k)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(qsyr2k)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(csyr2k)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zsyr2k)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xsyr2k)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(chemm)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zhemm)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xhemm)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(chemm3m)(char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
int FORTRAN_FUNC(zhemm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(xhemm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
int FORTRAN_FUNC(cherk)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zherk)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xherk)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(cher2k)(const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zher2k)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xher2k)(const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(cher2m)(const char*, const char*, const char*, const int*, const int*, const float*, const float*, const int*, const float*, const int*, const float*, float*, const int*);
int FORTRAN_FUNC(zher2m)(const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
int FORTRAN_FUNC(xher2m)(const char*, const char*, const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*);
#endif
/* DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY) */
double ddot_(int* n, double* dx, int* incx, double* dy, int* incy);

Wyświetl plik

@ -22,6 +22,7 @@
#include <string.h>
#include "dspl.h"
#include "dspl_internal.h"
#include "blas.h"

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Some files were not shown because too many files have changed in this diff Show More