-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathrotmg.cc
65 lines (54 loc) · 1.74 KB
/
rotmg.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright (c) 2017-2023, University of Tennessee. All rights reserved.
// SPDX-License-Identifier: BSD-3-Clause
// This program is free software: you can redistribute it and/or modify it under
// the terms of the BSD 3-Clause license. See the accompanying LICENSE file.
#include "blas/fortran.h"
#include "blas.hh"
#include "blas/counter.hh"
#include <limits>
#include <string.h>
namespace blas {
// =============================================================================
// Overloaded wrappers for s, d, c, z precisions.
// Not available for complex.
// -----------------------------------------------------------------------------
/// @ingroup rotmg
void rotmg(
float *d1,
float *d2,
float *a,
float b,
float param[5] )
{
#ifdef BLAS_HAVE_PAPI
// PAPI instrumentation
counter::rotmg_type element;
memset( &element, 0, sizeof( element ) );
element = { 1 };
counter::insert( element, counter::Id::rotmg );
// This operation does not incur significant FLOPs, so no
// need to call counter::inc_flop_count()
#endif
BLAS_srotmg( d1, d2, a, &b, param );
}
// -----------------------------------------------------------------------------
/// @ingroup rotmg
void rotmg(
double *d1,
double *d2,
double *a,
double b,
double param[5] )
{
#ifdef BLAS_HAVE_PAPI
// PAPI instrumentation
counter::rotmg_type element;
memset( &element, 0, sizeof( element ) );
element = { 1 };
counter::insert( element, counter::Id::rotmg );
// This operation does not incur significant FLOPs, so no
// need to call counter::inc_flop_count()
#endif
BLAS_drotmg( d1, d2, a, &b, param );
}
} // namespace blas