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
2010 additions
and
0 deletions
+2010
-0
dlib/external/cblas/cblas_zgemm.c
dlib/external/cblas/cblas_zgemm.c
+94
-0
dlib/external/cblas/cblas_zgemv.c
dlib/external/cblas/cblas_zgemv.c
+153
-0
dlib/external/cblas/cblas_zgerc.c
dlib/external/cblas/cblas_zgerc.c
+77
-0
dlib/external/cblas/cblas_zgeru.c
dlib/external/cblas/cblas_zgeru.c
+37
-0
dlib/external/cblas/cblas_zhbmv.c
dlib/external/cblas/cblas_zhbmv.c
+145
-0
dlib/external/cblas/cblas_zhemm.c
dlib/external/cblas/cblas_zhemm.c
+91
-0
dlib/external/cblas/cblas_zhemv.c
dlib/external/cblas/cblas_zhemv.c
+146
-0
dlib/external/cblas/cblas_zher.c
dlib/external/cblas/cblas_zher.c
+99
-0
dlib/external/cblas/cblas_zher2.c
dlib/external/cblas/cblas_zher2.c
+140
-0
dlib/external/cblas/cblas_zher2k.c
dlib/external/cblas/cblas_zher2k.c
+95
-0
dlib/external/cblas/cblas_zherk.c
dlib/external/cblas/cblas_zherk.c
+90
-0
dlib/external/cblas/cblas_zhpmv.c
dlib/external/cblas/cblas_zhpmv.c
+146
-0
dlib/external/cblas/cblas_zhpr.c
dlib/external/cblas/cblas_zhpr.c
+102
-0
dlib/external/cblas/cblas_zhpr2.c
dlib/external/cblas/cblas_zhpr2.c
+137
-0
dlib/external/cblas/cblas_zscal.c
dlib/external/cblas/cblas_zscal.c
+21
-0
dlib/external/cblas/cblas_zswap.c
dlib/external/cblas/cblas_zswap.c
+22
-0
dlib/external/cblas/cblas_zsymm.c
dlib/external/cblas/cblas_zsymm.c
+91
-0
dlib/external/cblas/cblas_zsyr2k.c
dlib/external/cblas/cblas_zsyr2k.c
+93
-0
dlib/external/cblas/cblas_zsyrk.c
dlib/external/cblas/cblas_zsyrk.c
+92
-0
dlib/external/cblas/cblas_ztbmv.c
dlib/external/cblas/cblas_ztbmv.c
+139
-0
No files found.
dlib/external/cblas/cblas_zgemm.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zgemm.c
* This program is a C interface to zgemm.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zgemm
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
enum
CBLAS_TRANSPOSE
TransB
,
const
int
M
,
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
TA
,
TB
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
,
F77_TB
;
#else
#define F77_TA &TA
#define F77_TB &TB
#endif
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_K
=
K
,
F77_lda
=
lda
,
F77_ldb
=
ldb
;
F77_INT
F77_ldc
=
ldc
;
#else
#define F77_M M
#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
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
{
cblas_xerbla
(
2
,
"cblas_zgemm"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
TransB
==
CblasTrans
)
TB
=
'T'
;
else
if
(
TransB
==
CblasConjTrans
)
TB
=
'C'
;
else
if
(
TransB
==
CblasNoTrans
)
TB
=
'N'
;
else
{
cblas_xerbla
(
3
,
"cblas_zgemm"
,
"Illegal TransB setting, %d
\n
"
,
TransB
);
return
;
}
#ifdef F77_CHAR
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_TB
=
C2F_CHAR
(
&
TB
);
#endif
F77_zgemm
(
F77_TA
,
F77_TB
,
&
F77_M
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
if
(
Order
==
CblasRowMajor
)
{
if
(
TransA
==
CblasTrans
)
TB
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TB
=
'C'
;
else
if
(
TransA
==
CblasNoTrans
)
TB
=
'N'
;
else
{
cblas_xerbla
(
2
,
"cblas_zgemm"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
TransB
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransB
==
CblasConjTrans
)
TA
=
'C'
;
else
if
(
TransB
==
CblasNoTrans
)
TA
=
'N'
;
else
{
cblas_xerbla
(
2
,
"cblas_zgemm"
,
"Illegal TransB setting, %d
\n
"
,
TransB
);
return
;
}
#ifdef F77_CHAR
F77_TA
=
C2F_CHAR
(
&
TA
);
F77_TB
=
C2F_CHAR
(
&
TB
);
#endif
F77_zgemm
(
F77_TA
,
F77_TB
,
&
F77_N
,
&
F77_M
,
&
F77_K
,
alpha
,
B
,
&
F77_ldb
,
A
,
&
F77_lda
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zgemm"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_zgemv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zgemv.c
* The program is a C interface of zgemv
*
* Keita Teranishi 5/20/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zgemv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_TRANSPOSE
TransA
,
const
int
M
,
const
int
N
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
const
void
*
X
,
const
int
incX
,
const
void
*
beta
,
void
*
Y
,
const
int
incY
)
{
char
TA
;
#ifdef F77_CHAR
F77_CHAR
F77_TA
;
#else
#define F77_TA &TA
#endif
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_M M
#define F77_N N
#define F77_lda lda
#define F77_incX incx
#define F77_incY incY
#endif
int
n
,
i
=
0
,
incx
=
incX
;
const
double
*
xx
=
(
double
*
)
X
,
*
alp
=
(
double
*
)
alpha
,
*
bet
=
(
double
*
)
beta
;
double
ALPHA
[
2
],
BETA
[
2
];
int
tincY
,
tincx
;
double
*
x
=
(
double
*
)
X
,
*
y
=
(
double
*
)
Y
,
*
st
=
0
,
*
tx
;
if
(
order
==
CblasColMajor
)
{
if
(
TransA
==
CblasNoTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasConjTrans
)
TA
=
'C'
;
else
{
cblas_xerbla
(
2
,
"cblas_zgemv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
#ifdef F77_CHAR
F77_TA
=
C2F_CHAR
(
&
TA
);
#endif
F77_zgemv
(
F77_TA
,
&
F77_M
,
&
F77_N
,
alpha
,
A
,
&
F77_lda
,
X
,
&
F77_incX
,
beta
,
Y
,
&
F77_incY
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
TransA
==
CblasNoTrans
)
TA
=
'T'
;
else
if
(
TransA
==
CblasTrans
)
TA
=
'N'
;
else
if
(
TransA
==
CblasConjTrans
)
{
ALPHA
[
0
]
=
*
alp
;
ALPHA
[
1
]
=
-
alp
[
1
];
BETA
[
0
]
=
*
bet
;
BETA
[
1
]
=
-
bet
[
1
];
TA
=
'N'
;
if
(
M
>
0
)
{
n
=
M
<<
1
;
x
=
malloc
(
n
*
sizeof
(
double
));
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
if
(
incY
>
0
)
tincY
=
incY
;
else
tincY
=
-
incY
;
y
++
;
if
(
N
>
0
)
{
i
=
tincY
<<
1
;
n
=
i
*
N
;
st
=
y
+
n
;
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
y
-=
n
;
}
}
else
x
=
(
double
*
)
X
;
}
else
{
cblas_xerbla
(
2
,
"cblas_zgemv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
#ifdef F77_CHAR
F77_TA
=
C2F_CHAR
(
&
TA
);
#endif
if
(
TransA
==
CblasConjTrans
)
F77_zgemv
(
F77_TA
,
&
F77_N
,
&
F77_M
,
ALPHA
,
A
,
&
F77_lda
,
x
,
&
F77_incX
,
BETA
,
Y
,
&
F77_incY
);
else
F77_zgemv
(
F77_TA
,
&
F77_N
,
&
F77_M
,
alpha
,
A
,
&
F77_lda
,
x
,
&
F77_incX
,
beta
,
Y
,
&
F77_incY
);
if
(
TransA
==
CblasConjTrans
)
{
if
(
x
!=
(
double
*
)
X
)
free
(
x
);
if
(
N
>
0
)
{
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
}
}
}
else
cblas_xerbla
(
1
,
"cblas_zgemv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_zgerc.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zgerc.c
* The program is a C interface to zgerc.
*
* Keita Teranishi 5/20/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zgerc
(
const
enum
CBLAS_ORDER
order
,
const
int
M
,
const
int
N
,
const
void
*
alpha
,
const
void
*
X
,
const
int
incX
,
const
void
*
Y
,
const
int
incY
,
void
*
A
,
const
int
lda
)
{
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_M M
#define F77_N N
#define F77_incX incX
#define F77_incY incy
#define F77_lda lda
#endif
int
n
,
i
,
tincy
,
incy
=
incY
;
double
*
y
=
(
double
*
)
Y
,
*
yy
=
(
double
*
)
Y
,
*
ty
,
*
st
;
if
(
order
==
CblasColMajor
)
{
F77_zgerc
(
&
F77_M
,
&
F77_N
,
alpha
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
,
A
,
&
F77_lda
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
N
>
0
)
{
n
=
N
<<
1
;
y
=
malloc
(
n
*
sizeof
(
double
));
ty
=
y
;
if
(
incY
>
0
)
{
i
=
incY
<<
1
;
tincy
=
2
;
st
=
y
+
n
;
}
else
{
i
=
incY
*
(
-
2
);
tincy
=
-
2
;
st
=
y
-
2
;
y
+=
(
n
-
2
);
}
do
{
*
y
=
*
yy
;
y
[
1
]
=
-
yy
[
1
];
y
+=
tincy
;
yy
+=
i
;
}
while
(
y
!=
st
);
y
=
ty
;
#ifdef F77_INT
F77_incY
=
1
;
#else
incy
=
1
;
#endif
}
else
y
=
(
double
*
)
Y
;
F77_zgeru
(
&
F77_N
,
&
F77_M
,
alpha
,
y
,
&
F77_incY
,
X
,
&
F77_incX
,
A
,
&
F77_lda
);
if
(
Y
!=
y
)
free
(
y
);
}
else
cblas_xerbla
(
1
,
"cblas_zgerc"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_zgeru.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zgeru.c
* The program is a C interface to zgeru.
*
* Keita Teranishi 5/20/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zgeru
(
const
enum
CBLAS_ORDER
order
,
const
int
M
,
const
int
N
,
const
void
*
alpha
,
const
void
*
X
,
const
int
incX
,
const
void
*
Y
,
const
int
incY
,
void
*
A
,
const
int
lda
)
{
#ifdef F77_INT
F77_INT
F77_M
=
M
,
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_M M
#define F77_N N
#define F77_incX incX
#define F77_incY incY
#define F77_lda lda
#endif
if
(
order
==
CblasColMajor
)
{
F77_zgeru
(
&
F77_M
,
&
F77_N
,
alpha
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
,
A
,
&
F77_lda
);
}
else
if
(
order
==
CblasRowMajor
)
{
F77_zgeru
(
&
F77_N
,
&
F77_M
,
alpha
,
Y
,
&
F77_incY
,
X
,
&
F77_incX
,
A
,
&
F77_lda
);
}
else
cblas_xerbla
(
1
,
"cblas_zgeru"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
dlib/external/cblas/cblas_zhbmv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zhbmv.c
* The program is a C interface to zhbmv
*
* Keita Teranishi 5/18/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
#include <stdio.h>
#include <stdlib.h>
void
cblas_zhbmv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
int
K
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
const
void
*
X
,
const
int
incX
,
const
void
*
beta
,
void
*
Y
,
const
int
incY
)
{
char
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_UL
;
#else
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_K
=
K
,
F77_lda
=
lda
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_K K
#define F77_lda lda
#define F77_incX incx
#define F77_incY incY
#endif
int
n
,
i
=
0
,
incx
=
incX
;
const
double
*
xx
=
(
double
*
)
X
,
*
alp
=
(
double
*
)
alpha
,
*
bet
=
(
double
*
)
beta
;
double
ALPHA
[
2
],
BETA
[
2
];
int
tincY
,
tincx
;
double
*
x
=
(
double
*
)
X
,
*
y
=
(
double
*
)
Y
,
*
st
=
0
,
*
tx
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhbmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhbmv
(
F77_UL
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
X
,
&
F77_incX
,
beta
,
Y
,
&
F77_incY
);
}
else
if
(
order
==
CblasRowMajor
)
{
ALPHA
[
0
]
=
*
alp
;
ALPHA
[
1
]
=
-
alp
[
1
];
BETA
[
0
]
=
*
bet
;
BETA
[
1
]
=
-
bet
[
1
];
if
(
N
>
0
)
{
n
=
N
<<
1
;
x
=
malloc
(
n
*
sizeof
(
double
));
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
if
(
incY
>
0
)
tincY
=
incY
;
else
tincY
=
-
incY
;
y
++
;
i
=
tincY
<<
1
;
n
=
i
*
N
;
st
=
y
+
n
;
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
y
-=
n
;
}
else
x
=
(
double
*
)
X
;
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhbmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhbmv
(
F77_UL
,
&
F77_N
,
&
F77_K
,
ALPHA
,
A
,
&
F77_lda
,
x
,
&
F77_incX
,
BETA
,
Y
,
&
F77_incY
);
}
else
{
cblas_xerbla
(
1
,
"cblas_zhbmv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
order
==
CblasRowMajor
)
{
if
(
X
!=
x
)
free
(
x
);
if
(
N
>
0
)
{
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
}
}
return
;
}
dlib/external/cblas/cblas_zhemm.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zhemm.c
* This program is a C interface to zhemm.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zhemm
(
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_zhemm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
3
,
"cblas_zhemm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_zhemm
(
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_zhemm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_zhemm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_zhemm
(
F77_SD
,
F77_UL
,
&
F77_N
,
&
F77_M
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zhemm"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_zhemv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zhemv.c
* The program is a C interface to zhemv
*
* Keita Teranishi 5/18/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zhemv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
void
*
alpha
,
const
void
*
A
,
const
int
lda
,
const
void
*
X
,
const
int
incX
,
const
void
*
beta
,
void
*
Y
,
const
int
incY
)
{
char
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_UL
;
#else
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_lda lda
#define F77_incX incx
#define F77_incY incY
#endif
int
n
,
i
=
0
,
incx
=
incX
;
const
double
*
xx
=
(
double
*
)
X
,
*
alp
=
(
double
*
)
alpha
,
*
bet
=
(
double
*
)
beta
;
double
ALPHA
[
2
],
BETA
[
2
];
int
tincY
,
tincx
;
double
*
x
=
(
double
*
)
X
,
*
y
=
(
double
*
)
Y
,
*
st
=
0
,
*
tx
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhemv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhemv
(
F77_UL
,
&
F77_N
,
alpha
,
A
,
&
F77_lda
,
X
,
&
F77_incX
,
beta
,
Y
,
&
F77_incY
);
}
else
if
(
order
==
CblasRowMajor
)
{
ALPHA
[
0
]
=
*
alp
;
ALPHA
[
1
]
=
-
alp
[
1
];
BETA
[
0
]
=
*
bet
;
BETA
[
1
]
=
-
bet
[
1
];
if
(
N
>
0
)
{
n
=
N
<<
1
;
x
=
malloc
(
n
*
sizeof
(
double
));
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
if
(
incY
>
0
)
tincY
=
incY
;
else
tincY
=
-
incY
;
y
++
;
i
=
tincY
<<
1
;
n
=
i
*
N
;
st
=
y
+
n
;
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
y
-=
n
;
}
else
x
=
(
double
*
)
X
;
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhemv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhemv
(
F77_UL
,
&
F77_N
,
ALPHA
,
A
,
&
F77_lda
,
x
,
&
F77_incX
,
BETA
,
Y
,
&
F77_incY
);
}
else
{
cblas_xerbla
(
1
,
"cblas_zhemv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
order
==
CblasRowMajor
)
{
if
(
X
!=
x
)
free
(
x
);
if
(
N
>
0
)
{
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
}
}
return
;
}
dlib/external/cblas/cblas_zher.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zher.c
* The program is a C interface to zher.
*
* Keita Teranishi 5/20/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zher
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
double
alpha
,
const
void
*
X
,
const
int
incX
,
void
*
A
,
const
int
lda
)
{
char
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_UL
;
#else
#define F77_UL &UL
#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
,
tincx
,
incx
=
incX
;
double
*
x
=
(
double
*
)
X
,
*
xx
=
(
double
*
)
X
,
*
tx
,
*
st
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zher"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zher
(
F77_UL
,
&
F77_N
,
&
alpha
,
X
,
&
F77_incX
,
A
,
&
F77_lda
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zher"
,
"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
(
double
));
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
=
(
double
*
)
X
;
F77_zher
(
F77_UL
,
&
F77_N
,
&
alpha
,
x
,
&
F77_incX
,
A
,
&
F77_lda
);
}
else
cblas_xerbla
(
1
,
"cblas_zher"
,
"Illegal Order setting, %d
\n
"
,
order
);
if
(
X
!=
x
)
free
(
x
);
return
;
}
dlib/external/cblas/cblas_zher2.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zher2.c
* The program is a C interface to zher2.
*
* Keita Teranishi 3/23/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zher2
(
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
*
A
,
const
int
lda
)
{
char
UL
;
#ifdef F77_CHAR
F77_CHAR
F77_UL
;
#else
#define F77_UL &UL
#endif
#ifdef F77_INT
F77_INT
F77_N
=
N
,
F77_lda
=
lda
,
F77_incX
=
incX
,
F77_incY
=
incY
;
#else
#define F77_N N
#define F77_lda lda
#define F77_incX incx
#define F77_incY incy
#endif
int
n
,
i
,
j
,
tincx
,
tincy
,
incx
=
incX
,
incy
=
incY
;
double
*
x
=
(
double
*
)
X
,
*
xx
=
(
double
*
)
X
,
*
y
=
(
double
*
)
Y
,
*
yy
=
(
double
*
)
Y
,
*
tx
,
*
ty
,
*
stx
,
*
sty
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zher2"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zher2
(
F77_UL
,
&
F77_N
,
alpha
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
,
A
,
&
F77_lda
);
}
else
if
(
order
==
CblasRowMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zher2"
,
"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
(
double
));
y
=
malloc
(
n
*
sizeof
(
double
));
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
=
(
double
*
)
X
;
y
=
(
double
*
)
Y
;
}
F77_zher2
(
F77_UL
,
&
F77_N
,
alpha
,
y
,
&
F77_incY
,
x
,
&
F77_incX
,
A
,
&
F77_lda
);
}
else
{
cblas_xerbla
(
1
,
"cblas_zher2"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
X
!=
x
)
free
(
x
);
if
(
Y
!=
y
)
free
(
y
);
return
;
}
dlib/external/cblas/cblas_zher2k.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zher2k.c
* This program is a C interface to zher2k.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zher2k
(
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
double
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
double
ALPHA
[
2
];
const
double
*
alp
=
(
double
*
)
alpha
;
if
(
Order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_zher2k"
,
"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_zher2k"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_zher2k
(
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
(
2
,
"cblas_zher2k"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
Trans
==
CblasTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasConjTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasNoTrans
)
TR
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_zher2k"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
ALPHA
[
0
]
=
*
alp
;
ALPHA
[
1
]
=
-
alp
[
1
];
F77_zher2k
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
ALPHA
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
&
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zher2k"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_zherk.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zherk.c
* This program is a C interface to zherk.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zherk
(
const
enum
CBLAS_ORDER
Order
,
const
enum
CBLAS_UPLO
Uplo
,
const
enum
CBLAS_TRANSPOSE
Trans
,
const
int
N
,
const
int
K
,
const
double
alpha
,
const
void
*
A
,
const
int
lda
,
const
double
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_zherk"
,
"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_zherk"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_zherk
(
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_zherk"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
if
(
Trans
==
CblasTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasConjTrans
)
TR
=
'N'
;
else
if
(
Trans
==
CblasNoTrans
)
TR
=
'C'
;
else
{
cblas_xerbla
(
3
,
"cblas_zherk"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_zherk
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
&
alpha
,
A
,
&
F77_lda
,
&
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zherk"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_zhpmv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zhpmv.c
* The program is a C interface of zhpmv
*
* Keita Teranishi 5/18/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zhpmv
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
void
*
alpha
,
const
void
*
AP
,
const
void
*
X
,
const
int
incX
,
const
void
*
beta
,
void
*
Y
,
const
int
incY
)
{
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
=
0
,
incx
=
incX
;
const
double
*
xx
=
(
double
*
)
X
,
*
alp
=
(
double
*
)
alpha
,
*
bet
=
(
double
*
)
beta
;
double
ALPHA
[
2
],
BETA
[
2
];
int
tincY
,
tincx
;
double
*
x
=
(
double
*
)
X
,
*
y
=
(
double
*
)
Y
,
*
st
=
0
,
*
tx
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhpmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhpmv
(
F77_UL
,
&
F77_N
,
alpha
,
AP
,
X
,
&
F77_incX
,
beta
,
Y
,
&
F77_incY
);
}
else
if
(
order
==
CblasRowMajor
)
{
ALPHA
[
0
]
=
*
alp
;
ALPHA
[
1
]
=
-
alp
[
1
];
BETA
[
0
]
=
*
bet
;
BETA
[
1
]
=
-
bet
[
1
];
if
(
N
>
0
)
{
n
=
N
<<
1
;
x
=
malloc
(
n
*
sizeof
(
double
));
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
if
(
incY
>
0
)
tincY
=
incY
;
else
tincY
=
-
incY
;
y
++
;
i
=
tincY
<<
1
;
n
=
i
*
N
;
st
=
y
+
n
;
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
y
-=
n
;
}
else
x
=
(
double
*
)
X
;
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhpmv"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhpmv
(
F77_UL
,
&
F77_N
,
ALPHA
,
AP
,
x
,
&
F77_incX
,
BETA
,
Y
,
&
F77_incY
);
}
else
{
cblas_xerbla
(
1
,
"cblas_zhpmv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
order
==
CblasRowMajor
)
{
if
(
X
!=
x
)
free
(
x
);
if
(
N
>
0
)
{
do
{
*
y
=
-
(
*
y
);
y
+=
i
;
}
while
(
y
!=
st
);
}
}
return
;
}
dlib/external/cblas/cblas_zhpr.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zhpr.c
* The program is a C interface to zhpr.
*
* Keita Teranishi 3/23/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zhpr
(
const
enum
CBLAS_ORDER
order
,
const
enum
CBLAS_UPLO
Uplo
,
const
int
N
,
const
double
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
;
double
*
x
=
(
double
*
)
X
,
*
xx
=
(
double
*
)
X
,
*
tx
,
*
st
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhpr"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhpr
(
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_zhpr"
,
"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
(
double
));
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
=
(
double
*
)
X
;
F77_zhpr
(
F77_UL
,
&
F77_N
,
&
alpha
,
x
,
&
F77_incX
,
A
);
}
else
{
cblas_xerbla
(
1
,
"cblas_zhpr"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
X
!=
x
)
free
(
x
);
return
;
}
dlib/external/cblas/cblas_zhpr2.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zhpr2.c
* The program is a C interface to zhpr2.
*
* Keita Teranishi 5/20/98
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zhpr2
(
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
,
incx
=
incX
,
incy
=
incY
;
double
*
x
=
(
double
*
)
X
,
*
xx
=
(
double
*
)
X
,
*
y
=
(
double
*
)
Y
,
*
yy
=
(
double
*
)
Y
,
*
stx
,
*
sty
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
{
cblas_xerbla
(
2
,
"cblas_zhpr2"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
#endif
F77_zhpr2
(
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_zhpr2"
,
"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
(
double
));
y
=
malloc
(
n
*
sizeof
(
double
));
stx
=
x
+
n
;
sty
=
y
+
n
;
if
(
incX
>
0
)
i
=
incX
<<
1
;
else
i
=
incX
*
(
-
2
);
if
(
incY
>
0
)
j
=
incY
<<
1
;
else
j
=
incY
*
(
-
2
);
do
{
*
x
=
*
xx
;
x
[
1
]
=
-
xx
[
1
];
x
+=
2
;
xx
+=
i
;
}
while
(
x
!=
stx
);
do
{
*
y
=
*
yy
;
y
[
1
]
=
-
yy
[
1
];
y
+=
2
;
yy
+=
j
;
}
while
(
y
!=
sty
);
x
-=
n
;
y
-=
n
;
#ifdef F77_INT
if
(
incX
>
0
)
F77_incX
=
1
;
else
F77_incX
=
-
1
;
if
(
incY
>
0
)
F77_incY
=
1
;
else
F77_incY
=
-
1
;
#else
if
(
incX
>
0
)
incx
=
1
;
else
incx
=
-
1
;
if
(
incY
>
0
)
incy
=
1
;
else
incy
=
-
1
;
#endif
}
else
{
x
=
(
double
*
)
X
;
y
=
(
void
*
)
Y
;
}
F77_zhpr2
(
F77_UL
,
&
F77_N
,
alpha
,
y
,
&
F77_incY
,
x
,
&
F77_incX
,
Ap
);
}
else
{
cblas_xerbla
(
1
,
"cblas_zhpr2"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
if
(
X
!=
x
)
free
(
x
);
if
(
Y
!=
y
)
free
(
y
);
return
;
}
dlib/external/cblas/cblas_zscal.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zscal.c
*
* The program is a C interface to zscal.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zscal
(
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_zscal
(
&
F77_N
,
alpha
,
X
,
&
F77_incX
);
}
dlib/external/cblas/cblas_zswap.c
0 → 100644
View file @
36fdfe68
/*
* cblas_zswap.c
*
* The program is a C interface to zswap.
*
* Written by Keita Teranishi. 2/11/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zswap
(
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_zswap
(
&
F77_N
,
X
,
&
F77_incX
,
Y
,
&
F77_incY
);
}
dlib/external/cblas/cblas_zsymm.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zsymm.c
* This program is a C interface to zsymm.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zsymm
(
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_zsymm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
3
,
"cblas_zsymm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_zsymm
(
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_zsymm"
,
"Illegal Side setting, %d
\n
"
,
Side
);
return
;
}
if
(
Uplo
==
CblasUpper
)
UL
=
'L'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'U'
;
else
{
cblas_xerbla
(
3
,
"cblas_zsymm"
,
"Illegal Uplo setting, %d
\n
"
,
Uplo
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_SD
=
C2F_CHAR
(
&
SD
);
#endif
F77_zsymm
(
F77_SD
,
F77_UL
,
&
F77_N
,
&
F77_M
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zsymm"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_zsyr2k.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zsyr2k.c
* This program is a C interface to zsyr2k.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zsyr2k
(
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_zsyr2k"
,
"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_zsyr2k"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_zsyr2k
(
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_zsyr2k"
,
"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_zsyr2k"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_zsyr2k
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
B
,
&
F77_ldb
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zsyr2k"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_zsyrk.c
0 → 100644
View file @
36fdfe68
/*
*
* cblas_zsyrk.c
* This program is a C interface to zsyrk.
* Written by Keita Teranishi
* 4/8/1998
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_zsyrk
(
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_zsyrk"
,
"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_zsyrk"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_zsyrk
(
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_zsyrk"
,
"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_zsyrk"
,
"Illegal Trans setting, %d
\n
"
,
Trans
);
return
;
}
#ifdef F77_CHAR
F77_UL
=
C2F_CHAR
(
&
UL
);
F77_TR
=
C2F_CHAR
(
&
TR
);
#endif
F77_zsyrk
(
F77_UL
,
F77_TR
,
&
F77_N
,
&
F77_K
,
alpha
,
A
,
&
F77_lda
,
beta
,
C
,
&
F77_ldc
);
}
else
cblas_xerbla
(
1
,
"cblas_zsyrk"
,
"Illegal Order setting, %d
\n
"
,
Order
);
return
;
}
dlib/external/cblas/cblas_ztbmv.c
0 → 100644
View file @
36fdfe68
/*
* cblas_ztbmv.c
* The program is a C interface to ztbmv.
*
* Keita Teranishi 5/20/98
*
*/
#include "cblas.h"
#include "cblas_f77.h"
void
cblas_ztbmv
(
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
;
double
*
st
=
0
,
*
x
=
(
double
*
)
X
;
if
(
order
==
CblasColMajor
)
{
if
(
Uplo
==
CblasUpper
)
UL
=
'U'
;
else
if
(
Uplo
==
CblasLower
)
UL
=
'L'
;
else
{
cblas_xerbla
(
2
,
"cblas_ztbmv"
,
"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_ztbmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ztbmv"
,
"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_ztbmv
(
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_ztbmv"
,
"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_ztbmv"
,
"Illegal TransA setting, %d
\n
"
,
TransA
);
return
;
}
if
(
Diag
==
CblasUnit
)
DI
=
'U'
;
else
if
(
Diag
==
CblasNonUnit
)
DI
=
'N'
;
else
{
cblas_xerbla
(
4
,
"cblas_ztbmv"
,
"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_ztbmv
(
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_ztbmv"
,
"Illegal Order setting, %d
\n
"
,
order
);
return
;
}
Prev
1
…
3
4
5
6
7
8
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