Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
36fdfe68
Commit
36fdfe68
authored
Feb 04, 2016
by
Davis King
Browse files
Added a copy of CBLAS so we can use it when linking against a BLAS that
doesn't have it.
parent
64c7e966
Changes
167
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1752 additions
and
0 deletions
+1752
-0
dlib/external/cblas/cblas_chpr.c
dlib/external/cblas/cblas_chpr.c
+102
-0
dlib/external/cblas/cblas_chpr2.c
dlib/external/cblas/cblas_chpr2.c
+136
-0
dlib/external/cblas/cblas_cscal.c
dlib/external/cblas/cblas_cscal.c
+21
-0
dlib/external/cblas/cblas_csscal.c
dlib/external/cblas/cblas_csscal.c
+21
-0
dlib/external/cblas/cblas_cswap.c
dlib/external/cblas/cblas_cswap.c
+22
-0
dlib/external/cblas/cblas_csymm.c
dlib/external/cblas/cblas_csymm.c
+91
-0
dlib/external/cblas/cblas_csyr2k.c
dlib/external/cblas/cblas_csyr2k.c
+93
-0
dlib/external/cblas/cblas_csyrk.c
dlib/external/cblas/cblas_csyrk.c
+93
-0
dlib/external/cblas/cblas_ctbmv.c
dlib/external/cblas/cblas_ctbmv.c
+139
-0
dlib/external/cblas/cblas_ctbsv.c
dlib/external/cblas/cblas_ctbsv.c
+143
-0
dlib/external/cblas/cblas_ctpmv.c
dlib/external/cblas/cblas_ctpmv.c
+133
-0
dlib/external/cblas/cblas_ctpsv.c
dlib/external/cblas/cblas_ctpsv.c
+138
-0
dlib/external/cblas/cblas_ctrmm.c
dlib/external/cblas/cblas_ctrmm.c
+123
-0
dlib/external/cblas/cblas_ctrmv.c
dlib/external/cblas/cblas_ctrmv.c
+136
-0
dlib/external/cblas/cblas_ctrsm.c
dlib/external/cblas/cblas_ctrsm.c
+132
-0
dlib/external/cblas/cblas_ctrsv.c
dlib/external/cblas/cblas_ctrsv.c
+137
-0
dlib/external/cblas/cblas_dasum.c
dlib/external/cblas/cblas_dasum.c
+23
-0
dlib/external/cblas/cblas_daxpy.c
dlib/external/cblas/cblas_daxpy.c
+22
-0
dlib/external/cblas/cblas_dcopy.c
dlib/external/cblas/cblas_dcopy.c
+22
-0
dlib/external/cblas/cblas_ddot.c
dlib/external/cblas/cblas_ddot.c
+25
-0
No files found.
dlib/external/cblas/cblas_chpr.c
0 → 100644
View file @
36fdfe68
/*
* cblas_chpr.c
* The program is a C interface to chpr.
*
* Keita Teranishi 3/23/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_chpr
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
float
alpha
,
const
void
*
X
,
const
int
incX
,
void
*
A
)
{
char
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_UL
;
#else
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_incX incx
#endif
int
n
,
i
,
tincx
,
incx
=
incX
;
float
*
x
=
(
float
*
)
X
,
*
xx
=
(
float
*
)
X
,
*
tx
,
*
st
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_chpr"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_chpr
(
F77_UL
,
&
F77_N
,
&
alpha
,
X
,
&
F77_incX
,
A
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_chpr"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
if
(
N
>
0
)
{
n
=
N
<<
1
;
x
=
malloc
(
n
*
sizeof
(
float
));
tx
=
x
;
if
(
incX
>
0
)
{
i
=
incX
<<
1
;
tincx
=
2
;
st
=
x
+
n
;
}
else
{
i
=
incX
*
(
-
2
);
tincx
=
-
2
;
st
=
x
-
2
;
x
+=
(
n
-
2
);
}
do
{
*
x
=
*
xx
;
x
[
1
]
=
-
xx
[
1
];
x
+=
tincx
;
xx
+=
i
;
}
while
(
x
!=
st
);
x
=
tx
;
#ifdef F77_INT
F77_incX
=
1
;
#else
incx
=
1
;
#endif
}
else
x
=
(
float
*
)
X
;
F77_chpr
(
F77_UL
,
&
F77_N
,
&
alpha
,
x
,
&
F77_incX
,
A
);
}
else
{
cblas_xerbla
(
1
,
"cblas_chpr"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
X
!=
x
)
free
(
x
);
return
;
}
dlib/external/cblas/cblas_chpr2.c
0 → 100644
View file @
36fdfe68
/*
* cblas_chpr2.c
* The program is a C interface to chpr2.
*
* Keita Teranishi 5/20/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_chpr2
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
void
*
alpha
,
const
void
*
X
,
const
int
incX
,
const
void
*
Y
,
const
int
incY
,
void
*
Ap
)
{
char
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_UL
;
#else
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_incX incx
#define F77_incY incy
#endif
int
n
,
i
,
j
,
tincx
,
tincy
,
incx
=
incX
,
incy
=
incY
;
float
*
x
=
(
float
*
)
X
,
*
xx
=
(
float
*
)
X
,
*
y
=
(
float
*
)
Y
,
*
yy
=
(
float
*
)
Y
,
*
tx
,
*
ty
,
*
stx
,
*
sty
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_chpr2"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_chpr2
(
F77_UL
,
&
F77_N
,
alpha
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
,
Ap
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_chpr2"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
if
(
N
>
0
)
{
n
=
N
<<
1
;
x
=
malloc
(
n
*
sizeof
(
float
));
y
=
malloc
(
n
*
sizeof
(
float
));
tx
=
x
;
ty
=
y
;
if
(
incX
>
0
)
{
i
=
incX
<<
1
;
tincx
=
2
;
stx
=
x
+
n
;
}
else
{
i
=
incX
*
(
-
2
);
tincx
=
-
2
;
stx
=
x
-
2
;
x
+=
(
n
-
2
);
}
if
(
incY
>
0
)
{
j
=
incY
<<
1
;
tincy
=
2
;
sty
=
y
+
n
;
}
else
{
j
=
incY
*
(
-
2
);
tincy
=
-
2
;
sty
=
y
-
2
;
y
+=
(
n
-
2
);
}
do
{
*
x
=
*
xx
;
x
[
1
]
=
-
xx
[
1
];
x
+=
tincx
;
xx
+=
i
;
}
while
(
x
!=
stx
);
do
{
*
y
=
*
yy
;
y
[
1
]
=
-
yy
[
1
];
y
+=
tincy
;
yy
+=
j
;
}
while
(
y
!=
sty
);
x
=
tx
;
y
=
ty
;
#ifdef F77_INT
F77_incX
=
1
;
F77_incY
=
1
;
#else
incx
=
1
;
incy
=
1
;
#endif
}
else
{
x
=
(
float
*
)
X
;
y
=
(
void
*
)
Y
;
}
F77_chpr2
(
F77_UL
,
&
F77_N
,
alpha
,
y
,
&
F77_incY
,
x
,
&
F77_incX
,
Ap
);
}
else
{
cblas_xerbla
(
1
,
"cblas_chpr2"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
X
!=
x
)
free
(
x
);
if
(
Y
!=
y
)
free
(
y
);
return
;
}
dlib/external/cblas/cblas_cscal.c
0 → 100644
View file @
36fdfe68
/*
* cblas_cscal.c
*
* The program is a C interface to cscal.f.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_cscal
(
const
int
N
,
const
void
*
alpha
,
void
*
X
,
const
int
incX
)
{
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_incX incX
#endif
F77_cscal
(
&
F77_N
,
alpha
,
X
,
&
F77_incX
);
}
dlib/external/cblas/cblas_csscal.c
0 → 100644
View file @
36fdfe68
/*
* cblas_csscal.c
*
* The program is a C interface to csscal.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_csscal
(
const
int
N
,
const
float
alpha
,
void
*
X
,
const
int
incX
)
{
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_incX incX
#endif
F77_csscal
(
&
F77_N
,
&
alpha
,
X
,
&
F77_incX
);
}
dlib/external/cblas/cblas_cswap.c
0 → 100644
View file @
36fdfe68
/*
* cblas_cswap.c
*
* The program is a C interface to cswap.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_cswap
(
const
int
N
,
void
*
X
,
const
int
incX
,
void
*
Y
,
const
int
incY
)
{
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#endif
F77_cswap
(
&
F77_N
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
);
}
dlib/external/cblas/cblas_csymm.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_csymm.c
* This program is a C interface to csymm.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_csymm
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_SIDE
Side
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
M
,
const
int
N
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
const
void
*
B
,
const
int
ldb
,
const
void
*
beta
,
void
*
C
,
const
int
ldc
)
{
char
SD
,
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_SD
,
F77_UL
;
#else
#define F77_SD &SD
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_lda
=
lda
,
F77_ldb
=
ldb
;
F77_INT
F77_ldc
=
ldc
;
#else
#define F77_M M
#define F77_N N
#define F77_lda lda
#define F77_ldb ldb
#define F77_ldc ldc
#endif
if
(
Order
==
CblasColMajor
)
{
if
(
Side
==
CblasRight
)
SD
=
'R'
;
else
if
(
Side
==
CblasLeft
)
SD
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_csymm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
3
,
"cblas_csymm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_csymm
(
F77_SD
,
F77_UL
,
&
F77_M
,
&
F77_N
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
if
(
Order
==
CblasRowMajor
)
{
if
(
Side
==
CblasRight
)
SD
=
'L'
;
else
if
(
Side
==
CblasLeft
)
SD
=
'R'
;
else
{
cblas_xerbla
(
2
,
"cblas_csymm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_csymm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_csymm
(
F77_SD
,
F77_UL
,
&
F77_N
,
&
F77_M
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_csymm"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_csyr2k.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_csyr2k.c
* This program is a C interface to csyr2k.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_csyr2k
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
Trans
,
const
int
N
,
const
int
K
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
const
void
*
B
,
const
int
ldb
,
const
void
*
beta
,
void
*
C
,
const
int
ldc
)
{
char
UL
,
TR
;
#ifdef F77_CHAR
F77_CHAR
F77_TR
,
F77_UL
;
#else
#define F77_TR &TR
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_K
=
K
,
F77_lda
=
lda
,
F77_ldb
=
ldb
;
F77_INT
F77_ldc
=
ldc
;
#else
#define F77_N N
#define F77_K K
#define F77_lda lda
#define F77_ldb ldb
#define F77_ldc ldc
#endif
if
(
Order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_csyr2k"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
Trans
==
CblasTrans
)
TR
=
'T'
;
else
if
(
Trans
==
CblasConjTrans
)
TR
=
'C'
;
else
if
(
Trans
==
CblasNoTrans
)
TR
=
'N'
;
else
{
cblas_xerbla
(
3
,
"cblas_csyr2k"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_csyr2k
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
if
(
Order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_csyr2k"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
Trans
==
CblasTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasConjTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasNoTrans
)
TR
=
'T'
;
else
{
cblas_xerbla
(
3
,
"cblas_csyr2k"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_csyr2k
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_csyr2k"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_csyrk.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_csyrk.c
* This program is a C interface to csyrk.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_csyrk
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
Trans
,
const
int
N
,
const
int
K
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
const
void
*
beta
,
void
*
C
,
const
int
ldc
)
{
char
UL
,
TR
;
#ifdef F77_CHAR
F77_CHAR
F77_TR
,
F77_UL
;
#else
#define F77_TR &TR
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_K
=
K
,
F77_lda
=
lda
;
F77_INT
F77_ldc
=
ldc
;
#else
#define F77_N N
#define F77_K K
#define F77_lda lda
#define F77_ldc ldc
#endif
if
(
Order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_csyrk"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
Trans
==
CblasTrans
)
TR
=
'T'
;
else
if
(
Trans
==
CblasConjTrans
)
TR
=
'C'
;
else
if
(
Trans
==
CblasNoTrans
)
TR
=
'N'
;
else
{
cblas_xerbla
(
3
,
"cblas_csyrk"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_csyrk
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
beta
,
C
,
&
F77_ldc
);
}
else
if
(
Order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_csyrk"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
Trans
==
CblasTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasConjTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasNoTrans
)
TR
=
'T'
;
else
{
cblas_xerbla
(
3
,
"cblas_csyrk"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_csyrk
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_csyrk"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_ctbmv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ctbmv.c
* The program is a C interface to ctbmv.
*
* Keita Teranishi 5/20/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctbmv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
N
,
const
int
K
,
const
void
*
A
,
const
int
lda
,
void
*
X
,
const
int
incX
)
{
char
TA
;
char
UL
;
char
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_lda
=
lda
,
F77_K
=
K
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_K K
#define F77_lda lda
#define F77_incX incX
#endif
int
n
,
i
=
0
,
tincX
;
float
*
st
=
0
,
*
x
=
(
float
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctbmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctbmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctbmv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctbmv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
&
F77_K
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctbmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
TA
=
'N'
;
if
(
N
>
0
)
{
if
(
incX
>
0
)
tincX
=
incX
;
else
tincX
=
-
incX
;
i
=
tincX
<<
1
;
n
=
i
*
N
;
x
++
;
st
=
x
+
n
;
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
x
-=
n
;
}
}
else
{
cblas_xerbla
(
3
,
"cblas_ctbmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctbmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctbmv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
&
F77_K
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
N
>
0
)
{
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_ctbmv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_ctbsv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ctbsv.c
* The program is a C interface to ctbsv.
*
* Keita Teranishi 3/23/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctbsv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
N
,
const
int
K
,
const
void
*
A
,
const
int
lda
,
void
*
X
,
const
int
incX
)
{
char
TA
;
char
UL
;
char
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_lda
=
lda
,
F77_K
=
K
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_K K
#define F77_lda lda
#define F77_incX incX
#endif
int
n
,
i
=
0
,
tincX
;
float
*
st
=
0
,
*
x
=
(
float
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctbsv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctbsv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctbsv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctbsv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
&
F77_K
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctbsv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
TA
=
'N'
;
if
(
N
>
0
)
{
if
(
incX
>
0
)
tincX
=
incX
;
else
tincX
=
-
incX
;
n
=
N
*
2
*
(
tincX
);
x
++
;
st
=
x
+
n
;
i
=
tincX
<<
1
;
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
x
-=
n
;
}
}
else
{
cblas_xerbla
(
3
,
"cblas_ctbsv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctbsv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctbsv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
&
F77_K
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
N
>
0
)
{
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_ctbsv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_ctpmv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ctpmv.c
* The program is a C interface to ctpmv.
*
* Keita Teranishi 5/20/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctpmv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
N
,
const
void
*
Ap
,
void
*
X
,
const
int
incX
)
{
char
TA
;
char
UL
;
char
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_incX incX
#endif
int
n
,
i
=
0
,
tincX
;
float
*
st
=
0
,
*
x
=
(
float
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctpmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctpmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctpmv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctpmv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
Ap
,
X
,
&
F77_incX
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctpmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
TA
=
'N'
;
if
(
N
>
0
)
{
if
(
incX
>
0
)
tincX
=
incX
;
else
tincX
=
-
incX
;
i
=
tincX
<<
1
;
n
=
i
*
N
;
x
++
;
st
=
x
+
n
;
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
x
-=
n
;
}
}
else
{
cblas_xerbla
(
3
,
"cblas_ctpmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctpmv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctpmv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
Ap
,
X
,
&
F77_incX
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
N
>
0
)
{
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_ctpmv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_ctpsv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ctpsv.c
* The program is a C interface to ctpsv.
*
* Keita Teranishi 3/23/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctpsv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
N
,
const
void
*
Ap
,
void
*
X
,
const
int
incX
)
{
char
TA
;
char
UL
;
char
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_incX incX
#endif
int
n
,
i
=
0
,
tincX
;
float
*
st
=
0
,
*
x
=
(
float
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctpsv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctpsv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctpsv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctpsv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
Ap
,
X
,
&
F77_incX
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctpsv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
TA
=
'N'
;
if
(
N
>
0
)
{
if
(
incX
>
0
)
tincX
=
incX
;
else
tincX
=
-
incX
;
n
=
N
*
2
*
(
tincX
);
x
++
;
st
=
x
+
n
;
i
=
tincX
<<
1
;
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
x
-=
n
;
}
}
else
{
cblas_xerbla
(
3
,
"cblas_ctpsv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctpsv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctpsv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
Ap
,
X
,
&
F77_incX
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
N
>
0
)
{
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_ctpsv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_ctrmm.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_ctrmm.c
* This program is a C interface to ctrmm.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctrmm
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_SIDE
Side
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
M
,
const
int
N
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
void
*
B
,
const
int
ldb
)
{
char
UL
,
TA
,
SD
,
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_SD
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_SD &SD
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_lda
=
lda
,
F77_ldb
=
ldb
;
#else
#define F77_M M
#define F77_N N
#define F77_lda lda
#define F77_ldb ldb
#endif
if
(
Order
==
CblasColMajor
)
{
if
(
Side
==
CblasRight
)
SD
=
'R'
;
else
if
(
Side
==
CblasLeft
)
SD
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrmm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctrmm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrmm"
,
"Illegal Trans setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
cblas_xerbla
(
5
,
"cblas_ctrmm"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_SD
=
C2F_CHAR
(
&
SD
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrmm
(
F77_SD
,
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_M
,
&
F77_N
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
);
}
else
if
(
Order
==
CblasRowMajor
)
{
if
(
Side
==
CblasRight
)
SD
=
'L'
;
else
if
(
Side
==
CblasLeft
)
SD
=
'R'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrmm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctrmm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrmm"
,
"Illegal Trans setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
5
,
"cblas_ctrmm"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_SD
=
C2F_CHAR
(
&
SD
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrmm
(
F77_SD
,
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
&
F77_M
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
);
}
else
cblas_xerbla
(
1
,
"cblas_ctrmm"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_ctrmv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ctrmv.c
* The program is a C interface to ctrmv.
*
* Keita Teranishi 3/23/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctrmv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
N
,
const
void
*
A
,
const
int
lda
,
void
*
X
,
const
int
incX
)
{
char
TA
;
char
UL
;
char
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_lda lda
#define F77_incX incX
#endif
int
n
,
i
=
0
,
tincX
;
float
*
st
=
0
,
*
x
=
(
float
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctrmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrmv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrmv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
TA
=
'N'
;
if
(
N
>
0
)
{
if
(
incX
>
0
)
tincX
=
incX
;
else
tincX
=
-
incX
;
i
=
tincX
<<
1
;
n
=
i
*
N
;
st
=
x
+
n
;
do
{
x
[
1
]
=
-
x
[
1
];
x
+=
i
;
}
while
(
x
!=
st
);
x
-=
n
;
}
}
else
{
cblas_xerbla
(
3
,
"cblas_ctrmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrmv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrmv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
N
>
0
)
{
do
{
x
[
1
]
=
-
x
[
1
];
x
+=
i
;
}
while
(
x
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_ctrmv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_ctrsm.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_ctrsm.c
* This program is a C interface to ctrsm.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctrsm
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_SIDE
Side
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
M
,
const
int
N
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
void
*
B
,
const
int
ldb
)
{
char
UL
,
TA
,
SD
,
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_SD
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_SD &SD
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_lda
=
lda
,
F77_ldb
=
ldb
;
#else
#define F77_M M
#define F77_N N
#define F77_lda lda
#define F77_ldb ldb
#endif
if
(
Order
==
CblasColMajor
)
{
if
(
Side
==
CblasRight
)
SD
=
'R'
;
else
if
(
Side
==
CblasLeft
)
SD
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrsm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctrsm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrsm"
,
"Illegal Trans setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
5
,
"cblas_ctrsm"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_SD
=
C2F_CHAR
(
&
SD
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrsm
(
F77_SD
,
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_M
,
&
F77_N
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
);
}
else
if
(
Order
==
CblasRowMajor
)
{
if
(
Side
==
CblasRight
)
SD
=
'L'
;
else
if
(
Side
==
CblasLeft
)
SD
=
'R'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrsm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctrsm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrsm"
,
"Illegal Trans setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
5
,
"cblas_ctrsm"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_SD
=
C2F_CHAR
(
&
SD
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrsm
(
F77_SD
,
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
&
F77_M
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
);
}
else
cblas_xerbla
(
1
,
"cblas_ctrsm"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_ctrsv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ctrsv.c
* The program is a C interface to ctrsv.
*
* Keita Teranishi 3/23/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ctrsv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_DIAG
Diag
,
const
int
N
,
const
void
*
A
,
const
int
lda
,
void
*
X
,
const
int
incX
)
{
char
TA
;
char
UL
;
char
DI
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_UL
,
F77_DI
;
#else
#define F77_TA &TA
#define F77_UL &UL
#define F77_DI &DI
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_lda lda
#define F77_incX incX
#endif
int
n
,
i
=
0
,
tincX
;
float
*
st
=
0
,
*
x
=
(
float
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrsv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_ctrsv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrsv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrsv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_ctrsv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
TA
=
'N'
;
if
(
N
>
0
)
{
if
(
incX
>
0
)
tincX
=
incX
;
else
tincX
=
-
incX
;
n
=
N
*
2
*
(
tincX
);
x
++
;
st
=
x
+
n
;
i
=
tincX
<<
1
;
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
x
-=
n
;
}
}
else
{
cblas_xerbla
(
3
,
"cblas_ctrsv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ctrsv"
,
"Illegal Diag setting, %d
\n
"
,
Diag
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_DI
=
C2F_CHAR
(
&
DI
);
#endif
F77_ctrsv
(
F77_UL
,
F77_TA
,
F77_DI
,
&
F77_N
,
A
,
&
F77_lda
,
X
,
&
F77_incX
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
N
>
0
)
{
do
{
*
x
=
-
(
*
x
);
x
+=
i
;
}
while
(
x
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_ctrsv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_dasum.c
0 → 100644
View file @
36fdfe68
/*
* cblas_dasum.c
*
* The program is a C interface to dasum.
* It calls the fortran wrapper before calling dasum.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
double
cblas_dasum
(
const
int
N
,
const
double
*
X
,
const
int
incX
)
{
double
asum
;
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
;
#else
#define F77_N N
#define F77_incX incX
#endif
F77_dasum_sub
(
&
F77_N
,
X
,
&
F77_incX
,
&
asum
);
return
asum
;
}
dlib/external/cblas/cblas_daxpy.c
0 → 100644
View file @
36fdfe68
/*
* cblas_daxpy.c
*
* The program is a C interface to daxpy.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_daxpy
(
const
int
N
,
const
double
alpha
,
const
double
*
X
,
const
int
incX
,
double
*
Y
,
const
int
incY
)
{
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#endif
F77_daxpy
(
&
F77_N
,
&
alpha
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
);
}
dlib/external/cblas/cblas_dcopy.c
0 → 100644
View file @
36fdfe68
/*
* cblas_dcopy.c
*
* The program is a C interface to dcopy.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_dcopy
(
const
int
N
,
const
double
*
X
,
const
int
incX
,
double
*
Y
,
const
int
incY
)
{
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#endif
F77_dcopy
(
&
F77_N
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
);
}
dlib/external/cblas/cblas_ddot.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ddot.c
*
* The program is a C interface to ddot.
* It calls the fortran wrapper before calling ddot.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
double
cblas_ddot
(
const
int
N
,
const
double
*
X
,
const
int
incX
,
const
double
*
Y
,
const
int
incY
)
{
double
dot
;
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#endif
F77_ddot_sub
(
&
F77_N
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
,
&
dot
);
return
dot
;
}
Prev
1
2
3
4
5
6
…
9
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment