MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / randomHemvMatrices

Function randomHemvMatrices

src/tests/include/blas-random.h:642–742  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640
641template <typename T>
642static void
643randomHemvMatrices(
644 clblasOrder order,
645 clblasUplo uplo,
646 size_t N,
647 bool useAlpha,
648 T *alpha,
649 T *A,
650 size_t lda,
651 T *X,
652 int incx,
653 bool useBeta,
654 T *beta,
655 T *Y,
656 int incy
657 )
658{
659 size_t i, j;
660 size_t lengthX;
661 size_t lengthY;
662 cl_double bound;
663 cl_double fAlpha, fBeta;
664
665 if (!useAlpha) {
666 *alpha = random<T>(100);
667 if (module(CREAL(*alpha)) == 0.0) {
668 CREAL(*alpha) = 1.0;
669 }
670 }
671
672 if (!useBeta) {
673 *beta = random<T>(100);
674 if (module(CREAL(*beta)) == 0.0) {
675 CREAL(*beta) = 1.0;
676 }
677 }
678
679 #ifdef DEBUG_HEMV
680 printf("ALPHA in randomSyr2Matrices %f.%f\n", CREAL(*alpha), CIMAG(*alpha));
681 printf("BETA in randomSyr2Matrices %f.%f\n", CREAL(*beta), CIMAG(*beta));
682 #endif
683
684 // bound is calculated by solving the equation (2*alpha*x^2 + x - UPPER_BOUND) < 0
685
686 bound = UPPER_BOUND<T>();
687
688 if((module(CREAL(*alpha)) > bound) || (module(CIMAG(*alpha)) > bound))
689 *alpha = random<T>((sqrt(bound) / ((2.0) * N)));
690 if (module(CREAL(*alpha)) == 0.0) {
691 CREAL(*alpha) = 1.0;
692 }
693
694 if((module(CREAL(*beta)) > bound) || (module(CIMAG(*beta)) > bound))
695 *beta = random<T>((sqrt(bound)));
696 if (module(CREAL(*beta)) == 0.0) {
697 CREAL(*beta) = 1.0;
698 }
699

Callers 5

hemvCorrectnessTestFunction · 0.85
hpmvCorrectnessTestFunction · 0.85
prepareMethod · 0.85
prepareMethod · 0.85
generateDataMethod · 0.85

Calls 1

moduleFunction · 0.70

Tested by

no test coverage detected