@@ -1348,6 +1348,162 @@ void trsv(
13481348 (cuDoubleComplex*) dx, incdx ) );
13491349}
13501350
1351+ // ------------------------------------------------------------------------------
1352+ // ger
1353+ // ------------------------------------------------------------------------------
1354+ void ger (
1355+ int64_t m, int64_t n,
1356+ float alpha,
1357+ float const * dx, int64_t incdx,
1358+ float const * dy, int64_t incdy,
1359+ float * dA, int64_t ldda,
1360+ blas::Queue& queue )
1361+ {
1362+ blas_dev_call (
1363+ cublasSger (
1364+ queue.handle (),
1365+ m, n,
1366+ &alpha,
1367+ dx, incdx,
1368+ dy, incdy,
1369+ dA, ldda ) );
1370+ }
1371+
1372+ // ------------------------------------------------------------------------------
1373+ void ger (
1374+ int64_t m, int64_t n,
1375+ double alpha,
1376+ double const * dx, int64_t incdx,
1377+ double const * dy, int64_t incdy,
1378+ double * dA, int64_t ldda,
1379+ blas::Queue& queue )
1380+ {
1381+ blas_dev_call (
1382+ cublasDger (
1383+ queue.handle (),
1384+ m, n,
1385+ &alpha,
1386+ dx, incdx,
1387+ dy, incdy,
1388+ dA, ldda ) );
1389+ }
1390+
1391+ // ------------------------------------------------------------------------------
1392+ void ger (
1393+ int64_t m, int64_t n,
1394+ std::complex <float > alpha,
1395+ std::complex <float > const * dx, int64_t incdx,
1396+ std::complex <float > const * dy, int64_t incdy,
1397+ std::complex <float >* dA, int64_t ldda,
1398+ blas::Queue& queue )
1399+ {
1400+ blas_dev_call (
1401+ cublasCgerc (
1402+ queue.handle (),
1403+ m, n,
1404+ (cuComplex*) &alpha,
1405+ (cuComplex*) dx, incdx,
1406+ (cuComplex*) dy, incdy,
1407+ (cuComplex*) dA, ldda ) );
1408+ }
1409+
1410+ // ------------------------------------------------------------------------------
1411+ void ger (
1412+ int64_t m, int64_t n,
1413+ std::complex <double > alpha,
1414+ std::complex <double > const * dx, int64_t incdx,
1415+ std::complex <double > const * dy, int64_t incdy,
1416+ std::complex <double >* dA, int64_t ldda,
1417+ blas::Queue& queue )
1418+ {
1419+ blas_dev_call (
1420+ cublasZgerc (
1421+ queue.handle (),
1422+ m, n,
1423+ (cuDoubleComplex*) &alpha,
1424+ (cuDoubleComplex*) dx, incdx,
1425+ (cuDoubleComplex*) dy, incdy,
1426+ (cuDoubleComplex*) dA, ldda ) );
1427+ }
1428+
1429+ // ------------------------------------------------------------------------------
1430+ // geru
1431+ // ------------------------------------------------------------------------------
1432+ void geru (
1433+ int64_t m, int64_t n,
1434+ float alpha,
1435+ float const * dx, int64_t incdx,
1436+ float const * dy, int64_t incdy,
1437+ float * dA, int64_t ldda,
1438+ blas::Queue& queue )
1439+ {
1440+ blas_dev_call (
1441+ cublasSger (
1442+ queue.handle (),
1443+ m, n,
1444+ &alpha,
1445+ dx, incdx,
1446+ dy, incdy,
1447+ dA, ldda ) );
1448+ }
1449+
1450+ // ------------------------------------------------------------------------------
1451+ void geru (
1452+ int64_t m, int64_t n,
1453+ double alpha,
1454+ double const * dx, int64_t incdx,
1455+ double const * dy, int64_t incdy,
1456+ double * dA, int64_t ldda,
1457+ blas::Queue& queue )
1458+ {
1459+ blas_dev_call (
1460+ cublasDger (
1461+ queue.handle (),
1462+ m, n,
1463+ &alpha,
1464+ dx, incdx,
1465+ dy, incdy,
1466+ dA, ldda ) );
1467+ }
1468+
1469+ // ------------------------------------------------------------------------------
1470+ void geru (
1471+ int64_t m, int64_t n,
1472+ std::complex <float > alpha,
1473+ std::complex <float > const * dx, int64_t incdx,
1474+ std::complex <float > const * dy, int64_t incdy,
1475+ std::complex <float >* dA, int64_t ldda,
1476+ blas::Queue& queue )
1477+ {
1478+ blas_dev_call (
1479+ cublasCgeru (
1480+ queue.handle (),
1481+ m, n,
1482+ (cuComplex*) &alpha,
1483+ (cuComplex*) dx, incdx,
1484+ (cuComplex*) dy, incdy,
1485+ (cuComplex*) dA, ldda ) );
1486+ }
1487+
1488+ // ------------------------------------------------------------------------------
1489+ void geru (
1490+ int64_t m, int64_t n,
1491+ std::complex <double > alpha,
1492+ std::complex <double > const * dx, int64_t incdx,
1493+ std::complex <double > const * dy, int64_t incdy,
1494+ std::complex <double >* dA, int64_t ldda,
1495+ blas::Queue& queue )
1496+ {
1497+ blas_dev_call (
1498+ cublasZgeru (
1499+ queue.handle (),
1500+ m, n,
1501+ (cuDoubleComplex*) &alpha,
1502+ (cuDoubleComplex*) dx, incdx,
1503+ (cuDoubleComplex*) dy, incdy,
1504+ (cuDoubleComplex*) dA, ldda ) );
1505+ }
1506+
13511507// ==============================================================================
13521508// Level 3 BLAS - Device Interfaces
13531509
0 commit comments