lib_eclblas.ecllib 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*##############################################################################
  2. HPCC SYSTEMS software Copyright (C) 2016 HPCC Systems®.
  3. Licensed under the Apache License, Version 2.0 (the License);
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an AS IS BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. ############################################################################## */
  13. EXPORT blas_dimension_t := UNSIGNED4;
  14. EXPORT blas_value_t := REAL8;
  15. EXPORT blas_matrix_t := SET OF REAL8;
  16. EXPORT blas_Triangle := ENUM(UNSIGNED1, Upper=1, Lower=2);
  17. EXPORT blas_Diagonal := ENUM(UNSIGNED1, UnitTri=1, NotUnitTri=2);
  18. EXPORT blas_Side := ENUM(UNSIGNED1, Ax=1, xA=2);
  19. EXPORT eclblas := SERVICE : plugin('eclblasplugin'), library('eclblas'), namespace('eclblas'), CPP, PURE
  20. REAL8 dasum(blas_dimension_t m, const blas_matrix_t x, blas_dimension_t incx,
  21. blas_dimension_t skipped=0);
  22. SET OF REAL8 daxpy(blas_dimension_t N, blas_value_t alpha, const blas_matrix_t X,
  23. blas_dimension_t incX, blas_matrix_t Y, blas_dimension_t incY,
  24. blas_dimension_t x_skipped=0, blas_dimension_t y_skipped=0);
  25. SET OF REAL8 dgemm(BOOLEAN transposeA, BOOLEAN transposeB,
  26. blas_dimension_t M, blas_dimension_t N, blas_dimension_t K,
  27. blas_value_t alpha, const blas_matrix_t A, const blas_matrix_t B,
  28. blas_value_t beta=0.0, const blas_matrix_t C=[]);
  29. SET OF REAL8 dgetf2(blas_dimension_t m, blas_dimension_t n, const blas_matrix_t a);
  30. SET OF REAL8 dpotf2(blas_Triangle tri, blas_dimension_t r, blas_matrix_t A, BOOLEAN clear=TRUE);
  31. SET OF REAL8 dscal(blas_dimension_t N, blas_value_t alpha, const blas_matrix_t X,
  32. blas_dimension_t incX, blas_dimension_t skipped=0);
  33. SET OF REAL8 dsyrk(blas_Triangle tri, BOOLEAN transposeA, blas_dimension_t N,
  34. blas_dimension_t K, blas_value_t alpha, const blas_matrix_t A,
  35. blas_value_t beta, const blas_matrix_t C, BOOLEAN clear=FALSE);
  36. SET OF REAL8 dtrsm(blas_Side side, blas_Triangle tri,
  37. BOOLEAN transposeA, blas_Diagonal diag,
  38. blas_dimension_t M, blas_dimension_t N, blas_dimension_t lda,
  39. blas_value_t alpha, const blas_matrix_t A, const blas_matrix_t B);
  40. SET OF REAL8 extract_tri(blas_dimension_t m, blas_dimension_t n, blas_Triangle tri,
  41. blas_Diagonal dt, const blas_matrix_t a);
  42. SET OF REAL8 make_diag(blas_dimension_t m, blas_value_t v=1.0, const blas_matrix_t X=[]);
  43. END;