![]() |
MAGMA
2.7.0
Matrix Algebra for GPU and Multicore Architectures
|
Functions | |
| magmaFloatComplex | magma_cmake_lwork (magma_int_t lwork) |
| This deals with a subtle bug with returning lwork as a Float. More... | |
| double | magma_dmake_lwork (magma_int_t lwork) |
| This deals with a subtle bug with returning lwork as a Float. More... | |
| float | magma_smake_lwork (magma_int_t lwork) |
| This deals with a subtle bug with returning lwork as a Float. More... | |
| magmaDoubleComplex | magma_zmake_lwork (magma_int_t lwork) |
| This deals with a subtle bug with returning lwork as a Float. More... | |
| magmaFloatComplex magma_cmake_lwork | ( | magma_int_t | lwork | ) |
This deals with a subtle bug with returning lwork as a Float.
If lwork > 2**24, then it will get rounded as a Float; we need to ensure it is rounded up instead of down, by multiplying by 1.+eps in Double precision:
float( 16777217 ) == 16777216 float( 16777217 * (1.+eps) ) == 16777218
where eps is Single precision machine epsilon. (Could use 1+2*eps in Single precision, but that can add more than necesary.) If lwork > 2**53, rounding would happen in Double, too, but that's 94M x 94M!
| [in] | lwork | Workspace size. |
| double magma_dmake_lwork | ( | magma_int_t | lwork | ) |
This deals with a subtle bug with returning lwork as a Float.
If lwork > 2**24, then it will get rounded as a Float; we need to ensure it is rounded up instead of down, by multiplying by 1.+eps in Double precision:
float( 16777217 ) == 16777216 float( 16777217 * (1.+eps) ) == 16777218
where eps is Single precision machine epsilon. (Could use 1+2*eps in Single precision, but that can add more than necesary.) If lwork > 2**53, rounding would happen in Double, too, but that's 94M x 94M!
| [in] | lwork | Workspace size. |
| float magma_smake_lwork | ( | magma_int_t | lwork | ) |
This deals with a subtle bug with returning lwork as a Float.
If lwork > 2**24, then it will get rounded as a Float; we need to ensure it is rounded up instead of down, by multiplying by 1.+eps in Double precision:
float( 16777217 ) == 16777216 float( 16777217 * (1.+eps) ) == 16777218
where eps is Single precision machine epsilon. (Could use 1+2*eps in Single precision, but that can add more than necesary.) If lwork > 2**53, rounding would happen in Double, too, but that's 94M x 94M!
| [in] | lwork | Workspace size. |
| magmaDoubleComplex magma_zmake_lwork | ( | magma_int_t | lwork | ) |
This deals with a subtle bug with returning lwork as a Float.
If lwork > 2**24, then it will get rounded as a Float; we need to ensure it is rounded up instead of down, by multiplying by 1.+eps in Double precision:
float( 16777217 ) == 16777216 float( 16777217 * (1.+eps) ) == 16777218
where eps is Single precision machine epsilon. (Could use 1+2*eps in Single precision, but that can add more than necesary.) If lwork > 2**53, rounding would happen in Double, too, but that's 94M x 94M!
| [in] | lwork | Workspace size. |