Skip to content

Commit fc2a4fd

Browse files
committed
Add skew-symmetric cblas subroutines and tests
1 parent 06f5ba3 commit fc2a4fd

32 files changed

+2822
-506
lines changed

CBLAS/include/cblas.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,10 @@ void cblas_sspmv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
354354
const CBLAS_INT N, const float alpha, const float *Ap,
355355
const float *X, const CBLAS_INT incX,
356356
const float beta, float *Y, const CBLAS_INT incY);
357+
void cblas_sskewsymv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
358+
const CBLAS_INT N, const float alpha, const float *A,
359+
const CBLAS_INT lda, const float *X, const CBLAS_INT incX,
360+
const float beta, float *Y, const CBLAS_INT incY);
357361
void cblas_sger(CBLAS_LAYOUT layout, const CBLAS_INT M, const CBLAS_INT N,
358362
const float alpha, const float *X, const CBLAS_INT incX,
359363
const float *Y, const CBLAS_INT incY, float *A, const CBLAS_INT lda);
@@ -370,6 +374,10 @@ void cblas_ssyr2(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
370374
void cblas_sspr2(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
371375
const CBLAS_INT N, const float alpha, const float *X,
372376
const CBLAS_INT incX, const float *Y, const CBLAS_INT incY, float *A);
377+
void cblas_sskewsyr2(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
378+
const CBLAS_INT N, const float alpha, const float *X,
379+
const CBLAS_INT incX, const float *Y, const CBLAS_INT incY, float *A,
380+
const CBLAS_INT lda);
373381

374382
void cblas_dsymv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
375383
const CBLAS_INT N, const double alpha, const double *A,
@@ -383,6 +391,10 @@ void cblas_dspmv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
383391
const CBLAS_INT N, const double alpha, const double *Ap,
384392
const double *X, const CBLAS_INT incX,
385393
const double beta, double *Y, const CBLAS_INT incY);
394+
void cblas_dskewsymv(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
395+
const CBLAS_INT N, const double alpha, const double *A,
396+
const CBLAS_INT lda, const double *X, const CBLAS_INT incX,
397+
const double beta, double *Y, const CBLAS_INT incY);
386398
void cblas_dger(CBLAS_LAYOUT layout, const CBLAS_INT M, const CBLAS_INT N,
387399
const double alpha, const double *X, const CBLAS_INT incX,
388400
const double *Y, const CBLAS_INT incY, double *A, const CBLAS_INT lda);
@@ -399,6 +411,10 @@ void cblas_dsyr2(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
399411
void cblas_dspr2(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
400412
const CBLAS_INT N, const double alpha, const double *X,
401413
const CBLAS_INT incX, const double *Y, const CBLAS_INT incY, double *A);
414+
void cblas_dskewsyr2(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
415+
const CBLAS_INT N, const double alpha, const double *X,
416+
const CBLAS_INT incX, const double *Y, const CBLAS_INT incY, double *A,
417+
const CBLAS_INT lda);
402418

403419

404420
/*
@@ -491,6 +507,11 @@ void cblas_ssymm(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
491507
const float alpha, const float *A, const CBLAS_INT lda,
492508
const float *B, const CBLAS_INT ldb, const float beta,
493509
float *C, const CBLAS_INT ldc);
510+
void cblas_sskewsymm(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
511+
CBLAS_UPLO Uplo, const CBLAS_INT M, const CBLAS_INT N,
512+
const float alpha, const float *A, const CBLAS_INT lda,
513+
const float *B, const CBLAS_INT ldb, const float beta,
514+
float *C, const CBLAS_INT ldc);
494515
void cblas_ssyrk(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
495516
CBLAS_TRANSPOSE Trans, const CBLAS_INT N, const CBLAS_INT K,
496517
const float alpha, const float *A, const CBLAS_INT lda,
@@ -500,6 +521,11 @@ void cblas_ssyr2k(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
500521
const float alpha, const float *A, const CBLAS_INT lda,
501522
const float *B, const CBLAS_INT ldb, const float beta,
502523
float *C, const CBLAS_INT ldc);
524+
void cblas_sskewsyr2k(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
525+
CBLAS_TRANSPOSE Trans, const CBLAS_INT N, const CBLAS_INT K,
526+
const float alpha, const float *A, const CBLAS_INT lda,
527+
const float *B, const CBLAS_INT ldb, const float beta,
528+
float *C, const CBLAS_INT ldc);
503529
void cblas_strmm(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
504530
CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
505531
CBLAS_DIAG Diag, const CBLAS_INT M, const CBLAS_INT N,
@@ -526,6 +552,11 @@ void cblas_dsymm(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
526552
const double alpha, const double *A, const CBLAS_INT lda,
527553
const double *B, const CBLAS_INT ldb, const double beta,
528554
double *C, const CBLAS_INT ldc);
555+
void cblas_dskewsymm(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
556+
CBLAS_UPLO Uplo, const CBLAS_INT M, const CBLAS_INT N,
557+
const double alpha, const double *A, const CBLAS_INT lda,
558+
const double *B, const CBLAS_INT ldb, const double beta,
559+
double *C, const CBLAS_INT ldc);
529560
void cblas_dsyrk(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
530561
CBLAS_TRANSPOSE Trans, const CBLAS_INT N, const CBLAS_INT K,
531562
const double alpha, const double *A, const CBLAS_INT lda,
@@ -535,6 +566,11 @@ void cblas_dsyr2k(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
535566
const double alpha, const double *A, const CBLAS_INT lda,
536567
const double *B, const CBLAS_INT ldb, const double beta,
537568
double *C, const CBLAS_INT ldc);
569+
void cblas_dskewsyr2k(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
570+
CBLAS_TRANSPOSE Trans, const CBLAS_INT N, const CBLAS_INT K,
571+
const double alpha, const double *A, const CBLAS_INT lda,
572+
const double *B, const CBLAS_INT ldb, const double beta,
573+
double *C, const CBLAS_INT ldc);
538574
void cblas_dtrmm(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
539575
CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
540576
CBLAS_DIAG Diag, const CBLAS_INT M, const CBLAS_INT N,

CBLAS/include/cblas_64.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,10 @@ void cblas_sspmv_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
306306
const int64_t N, const float alpha, const float *Ap,
307307
const float *X, const int64_t incX,
308308
const float beta, float *Y, const int64_t incY);
309+
void cblas_sskewsymv_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
310+
const int64_t N, const float alpha, const float *A,
311+
const int64_t lda, const float *X, const int64_t incX,
312+
const float beta, float *Y, const int64_t incY);
309313
void cblas_sger_64(CBLAS_LAYOUT layout, const int64_t M, const int64_t N,
310314
const float alpha, const float *X, const int64_t incX,
311315
const float *Y, const int64_t incY, float *A, const int64_t lda);
@@ -322,6 +326,10 @@ void cblas_ssyr2_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
322326
void cblas_sspr2_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
323327
const int64_t N, const float alpha, const float *X,
324328
const int64_t incX, const float *Y, const int64_t incY, float *A);
329+
void cblas_sskewsyr2_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
330+
const int64_t N, const float alpha, const float *X,
331+
const int64_t incX, const float *Y, const int64_t incY, float *A,
332+
const int64_t lda);
325333

326334
void cblas_dsymv_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
327335
const int64_t N, const double alpha, const double *A,
@@ -335,6 +343,10 @@ void cblas_dspmv_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
335343
const int64_t N, const double alpha, const double *Ap,
336344
const double *X, const int64_t incX,
337345
const double beta, double *Y, const int64_t incY);
346+
void cblas_dskewsymv_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
347+
const int64_t N, const double alpha, const double *A,
348+
const int64_t lda, const double *X, const int64_t incX,
349+
const double beta, double *Y, const int64_t incY);
338350
void cblas_dger_64(CBLAS_LAYOUT layout, const int64_t M, const int64_t N,
339351
const double alpha, const double *X, const int64_t incX,
340352
const double *Y, const int64_t incY, double *A, const int64_t lda);
@@ -351,6 +363,10 @@ void cblas_dsyr2_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
351363
void cblas_dspr2_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
352364
const int64_t N, const double alpha, const double *X,
353365
const int64_t incX, const double *Y, const int64_t incY, double *A);
366+
void cblas_dskewsyr2_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
367+
const int64_t N, const double alpha, const double *X,
368+
const int64_t incX, const double *Y, const int64_t incY, double *A,
369+
const int64_t lda);
354370

355371

356372
/*
@@ -443,6 +459,11 @@ void cblas_ssymm_64(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
443459
const float alpha, const float *A, const int64_t lda,
444460
const float *B, const int64_t ldb, const float beta,
445461
float *C, const int64_t ldc);
462+
void cblas_sskewsymm_64(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
463+
CBLAS_UPLO Uplo, const int64_t M, const int64_t N,
464+
const float alpha, const float *A, const int64_t lda,
465+
const float *B, const int64_t ldb, const float beta,
466+
float *C, const int64_t ldc);
446467
void cblas_ssyrk_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
447468
CBLAS_TRANSPOSE Trans, const int64_t N, const int64_t K,
448469
const float alpha, const float *A, const int64_t lda,
@@ -452,6 +473,11 @@ void cblas_ssyr2k_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
452473
const float alpha, const float *A, const int64_t lda,
453474
const float *B, const int64_t ldb, const float beta,
454475
float *C, const int64_t ldc);
476+
void cblas_sskewsyr2k_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
477+
CBLAS_TRANSPOSE Trans, const int64_t N, const int64_t K,
478+
const float alpha, const float *A, const int64_t lda,
479+
const float *B, const int64_t ldb, const float beta,
480+
float *C, const int64_t ldc);
455481
void cblas_strmm_64(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
456482
CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
457483
CBLAS_DIAG Diag, const int64_t M, const int64_t N,
@@ -478,6 +504,11 @@ void cblas_dsymm_64(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
478504
const double alpha, const double *A, const int64_t lda,
479505
const double *B, const int64_t ldb, const double beta,
480506
double *C, const int64_t ldc);
507+
void cblas_dskewsymm_64(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
508+
CBLAS_UPLO Uplo, const int64_t M, const int64_t N,
509+
const double alpha, const double *A, const int64_t lda,
510+
const double *B, const int64_t ldb, const double beta,
511+
double *C, const int64_t ldc);
481512
void cblas_dsyrk_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
482513
CBLAS_TRANSPOSE Trans, const int64_t N, const int64_t K,
483514
const double alpha, const double *A, const int64_t lda,
@@ -487,6 +518,11 @@ void cblas_dsyr2k_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
487518
const double alpha, const double *A, const int64_t lda,
488519
const double *B, const int64_t ldb, const double beta,
489520
double *C, const int64_t ldc);
521+
void cblas_dskewsyr2k_64(CBLAS_LAYOUT layout, CBLAS_UPLO Uplo,
522+
CBLAS_TRANSPOSE Trans, const int64_t N, const int64_t K,
523+
const double alpha, const double *A, const int64_t lda,
524+
const double *B, const int64_t ldb, const double beta,
525+
double *C, const int64_t ldc);
490526
void cblas_dtrmm_64(CBLAS_LAYOUT layout, CBLAS_SIDE Side,
491527
CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
492528
CBLAS_DIAG Diag, const int64_t M, const int64_t N,

0 commit comments

Comments
 (0)