numo-linalg-alt 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42941b98550789f5cca4d1eb91a1dd88442a7f89574ef38b8260ec3882ec4eba
4
- data.tar.gz: 15a4fa8b6147463a8fd91f9fbd16f688ebf5cc01becdf4f0589e515b7f00fd99
3
+ metadata.gz: 7eeac3bb724777fb9b247445c0519c21d95744c9e07fbfd6ab0af51d490b6232
4
+ data.tar.gz: 05ae98f73325fa3328217bcc17231d92e465d37f3b766fd609b18e2c752a8649
5
5
  SHA512:
6
- metadata.gz: 85e6b6deefa0cd3fca1204cf2ccf2c337386061e79403dd420e51745869c9f4548bedd72bf9ca78b9f5506fdc9808b635810fb7a515f3e318bcbd46bd8c65e45
7
- data.tar.gz: a109ac617d606e70fa8aec1f2c721ab588316b845628b912b7cc381c62bf770326a31c97e750a9308163695ba7c7d9593084060fc766e07e081db8c7559e29c7
6
+ metadata.gz: 61e88804d88190e1e01307cec2ffb7f6cbaaa799b760fa56cf77778d697b83ccb143f802f46a58fcbe4ed984caa6cc9b8b27f66ea4ef78989e781af81c7a5aab
7
+ data.tar.gz: 1a618efe98fc6d464d4924402c37ab133085edfa7b0faf420f3c4c4c913d838396dd27fe1f0080e754dbbe85685760b63c83938cc53fc499302063e217376b6d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [[0.7.1](https://github.com/yoshoku/numo-linalg-alt/compare/v0.7.0...v0.7.1)] - 2025-11-19
2
+
3
+ - set the required version of numo-narray-alt to 0.9.10 or higher.
4
+ - change require statement to explicitly load numo/narray/alt.
5
+ - fix to use require for compatibility with distributions installing extensions separately.
6
+
1
7
  ## [[0.7.0](https://github.com/yoshoku/numo-linalg-alt/compare/v0.6.0...v0.7.0)] - 2025-11-11
2
8
 
3
9
  **Breaking changes**
@@ -1,6 +1,6 @@
1
1
  #include "nrm2.h"
2
2
 
3
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fBlasFunc) \
3
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fBlasFunc) \
4
4
  static void _iter_##fBlasFunc(na_loop_t* const lp) { \
5
5
  tDType* x = (tDType*)NDL_PTR(lp, 0); \
6
6
  tRtDType* d = (tRtDType*)NDL_PTR(lp, 1); \
@@ -52,10 +52,10 @@
52
52
  return ret; \
53
53
  }
54
54
 
55
- DEF_LINALG_FUNC(double, double, numo_cDFloat, numo_cDFloat, dnrm2)
56
- DEF_LINALG_FUNC(float, float, numo_cSFloat, numo_cSFloat, snrm2)
57
- DEF_LINALG_FUNC(dcomplex, double, numo_cDComplex, numo_cDFloat, dznrm2)
58
- DEF_LINALG_FUNC(scomplex, float, numo_cSComplex, numo_cSFloat, scnrm2)
55
+ DEF_LINALG_FUNC(double, numo_cDFloat, double, numo_cDFloat, dnrm2)
56
+ DEF_LINALG_FUNC(float, numo_cSFloat, float, numo_cSFloat, snrm2)
57
+ DEF_LINALG_FUNC(dcomplex, numo_cDComplex, double, numo_cDFloat, dznrm2)
58
+ DEF_LINALG_FUNC(scomplex, numo_cSComplex, float, numo_cSFloat, scnrm2)
59
59
 
60
60
  #undef DEF_LINALG_FUNC
61
61
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'mkmf'
4
- require 'numo/narray'
4
+ require 'numo/narray/alt'
5
5
  require 'open-uri'
6
6
  require 'etc'
7
7
  require 'fileutils'
@@ -22,8 +22,8 @@ on_windows = RUBY_PLATFORM.match?(/mswin|cygwin|mingw/)
22
22
 
23
23
  if on_windows
24
24
  $LOAD_PATH.each do |lp|
25
- if File.exist?(File.join(lp, 'numo/libnarray.a'))
26
- $LDFLAGS = "-L#{lp}/numo #{$LDFLAGS}"
25
+ if File.exist?(File.join(lp, 'numo/narray/libnarray.a'))
26
+ $LDFLAGS = "-L#{lp}/numo/narray #{$LDFLAGS}"
27
27
  break
28
28
  end
29
29
  end
@@ -13,7 +13,7 @@ char _get_job(VALUE val) {
13
13
  return job;
14
14
  }
15
15
 
16
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
16
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
17
17
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
18
18
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
19
19
  int* ilo = (int*)NDL_PTR(lp, 1); \
@@ -72,10 +72,10 @@ char _get_job(VALUE val) {
72
72
  return ret; \
73
73
  }
74
74
 
75
- DEF_LINALG_FUNC(double, double, numo_cDFloat, numo_cDFloat, dgebal)
76
- DEF_LINALG_FUNC(float, float, numo_cSFloat, numo_cSFloat, sgebal)
77
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zgebal)
78
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cgebal)
75
+ DEF_LINALG_FUNC(double, numo_cDFloat, double, numo_cDFloat, dgebal)
76
+ DEF_LINALG_FUNC(float, numo_cSFloat, float, numo_cSFloat, sgebal)
77
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zgebal)
78
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cgebal)
79
79
 
80
80
  #undef DEF_LINALG_FUNC
81
81
 
@@ -5,7 +5,7 @@ struct _gelsd_option {
5
5
  double rcond;
6
6
  };
7
7
 
8
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
8
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
9
9
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
10
10
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
11
11
  tDType* b = (tDType*)NDL_PTR(lp, 1); \
@@ -88,10 +88,10 @@ struct _gelsd_option {
88
88
  return ret; \
89
89
  }
90
90
 
91
- DEF_LINALG_FUNC(double, double, numo_cDFloat, numo_cDFloat, dgelsd)
92
- DEF_LINALG_FUNC(float, float, numo_cSFloat, numo_cSFloat, sgelsd)
93
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zgelsd)
94
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cgelsd)
91
+ DEF_LINALG_FUNC(double, numo_cDFloat, double, numo_cDFloat, dgelsd)
92
+ DEF_LINALG_FUNC(float, numo_cSFloat, float, numo_cSFloat, sgelsd)
93
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zgelsd)
94
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cgelsd)
95
95
 
96
96
  #undef DEF_LINALG_FUNC
97
97
 
@@ -5,7 +5,7 @@ struct _gesdd_option {
5
5
  char jobz;
6
6
  };
7
7
 
8
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
8
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
9
9
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
10
10
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
11
11
  tRtDType* s = (tRtDType*)NDL_PTR(lp, 1); \
@@ -103,10 +103,10 @@ struct _gesdd_option {
103
103
  return ret; \
104
104
  }
105
105
 
106
- DEF_LINALG_FUNC(double, double, numo_cDFloat, numo_cDFloat, dgesdd)
107
- DEF_LINALG_FUNC(float, float, numo_cSFloat, numo_cSFloat, sgesdd)
108
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zgesdd)
109
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cgesdd)
106
+ DEF_LINALG_FUNC(double, numo_cDFloat, double, numo_cDFloat, dgesdd)
107
+ DEF_LINALG_FUNC(float, numo_cSFloat, float, numo_cSFloat, sgesdd)
108
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zgesdd)
109
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cgesdd)
110
110
 
111
111
  #undef DEF_LINALG_FUNC
112
112
 
@@ -6,7 +6,7 @@ struct _gesvd_option {
6
6
  char jobvt;
7
7
  };
8
8
 
9
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
9
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
10
10
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
11
11
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
12
12
  tRtDType* s = (tRtDType*)NDL_PTR(lp, 1); \
@@ -148,10 +148,10 @@ struct _gesvd_option {
148
148
  return ret; \
149
149
  }
150
150
 
151
- DEF_LINALG_FUNC(double, double, numo_cDFloat, numo_cDFloat, dgesvd)
152
- DEF_LINALG_FUNC(float, float, numo_cSFloat, numo_cSFloat, sgesvd)
153
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zgesvd)
154
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cgesvd)
151
+ DEF_LINALG_FUNC(double, numo_cDFloat, double, numo_cDFloat, dgesvd)
152
+ DEF_LINALG_FUNC(float, numo_cSFloat, float, numo_cSFloat, sgesvd)
153
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zgesvd)
154
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cgesvd)
155
155
 
156
156
  #undef DEF_LINALG_FUNC
157
157
 
@@ -6,7 +6,7 @@ struct _heev_option {
6
6
  char uplo;
7
7
  };
8
8
 
9
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
9
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
10
10
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
11
11
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
12
12
  tRtDType* w = (tRtDType*)NDL_PTR(lp, 1); \
@@ -62,8 +62,8 @@ struct _heev_option {
62
62
  return ret; \
63
63
  }
64
64
 
65
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zheev)
66
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cheev)
65
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zheev)
66
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cheev)
67
67
 
68
68
  #undef DEF_LINALG_FUNC
69
69
 
@@ -6,7 +6,7 @@ struct _heevd_option {
6
6
  char uplo;
7
7
  };
8
8
 
9
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
9
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
10
10
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
11
11
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
12
12
  tRtDType* w = (tRtDType*)NDL_PTR(lp, 1); \
@@ -62,8 +62,8 @@ struct _heevd_option {
62
62
  return ret; \
63
63
  }
64
64
 
65
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zheevd)
66
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cheevd)
65
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zheevd)
66
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cheevd)
67
67
 
68
68
  #undef DEF_LINALG_FUNC
69
69
 
@@ -1,6 +1,6 @@
1
1
  #include "heevr.h"
2
2
 
3
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
3
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
4
4
  struct _heevr_option_##tRtDType { \
5
5
  int matrix_layout; \
6
6
  char jobz; \
@@ -111,8 +111,8 @@
111
111
  return ret; \
112
112
  }
113
113
 
114
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zheevr)
115
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, cheevr)
114
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zheevr)
115
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, cheevr)
116
116
 
117
117
  #undef DEF_LINALG_FUNC
118
118
 
@@ -7,7 +7,7 @@ struct _hegv_option {
7
7
  char uplo;
8
8
  };
9
9
 
10
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
10
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
11
11
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
12
12
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
13
13
  tDType* b = (tDType*)NDL_PTR(lp, 1); \
@@ -86,8 +86,8 @@ struct _hegv_option {
86
86
  return ret; \
87
87
  }
88
88
 
89
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zhegv)
90
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, chegv)
89
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zhegv)
90
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, chegv)
91
91
 
92
92
  #undef DEF_LINALG_FUNC
93
93
 
@@ -7,7 +7,7 @@ struct _hegvd_option {
7
7
  char uplo;
8
8
  };
9
9
 
10
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
10
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
11
11
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
12
12
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
13
13
  tDType* b = (tDType*)NDL_PTR(lp, 1); \
@@ -86,8 +86,8 @@ struct _hegvd_option {
86
86
  return ret; \
87
87
  }
88
88
 
89
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zhegvd)
90
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, chegvd)
89
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zhegvd)
90
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, chegvd)
91
91
 
92
92
  #undef DEF_LINALG_FUNC
93
93
 
@@ -1,6 +1,6 @@
1
1
  #include "hegvx.h"
2
2
 
3
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
3
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
4
4
  struct _hegvx_option_##tRtDType { \
5
5
  int matrix_layout; \
6
6
  lapack_int itype; \
@@ -134,8 +134,8 @@
134
134
  return ret; \
135
135
  }
136
136
 
137
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zhegvx)
138
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, chegvx)
137
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zhegvx)
138
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, chegvx)
139
139
 
140
140
  #undef DEF_LINALG_FUNC
141
141
 
@@ -5,7 +5,7 @@ struct _lange_option {
5
5
  char norm;
6
6
  };
7
7
 
8
- #define DEF_LINALG_FUNC(tDType, tRtDType, tNAryClass, tRtNAryClass, fLapackFunc) \
8
+ #define DEF_LINALG_FUNC(tDType, tNAryClass, tRtDType, tRtNAryClass, fLapackFunc) \
9
9
  static void _iter_##fLapackFunc(na_loop_t* const lp) { \
10
10
  tDType* a = (tDType*)NDL_PTR(lp, 0); \
11
11
  tRtDType* d = (tRtDType*)NDL_PTR(lp, 1); \
@@ -51,10 +51,10 @@ struct _lange_option {
51
51
  return ret; \
52
52
  }
53
53
 
54
- DEF_LINALG_FUNC(double, double, numo_cDFloat, numo_cDFloat, dlange)
55
- DEF_LINALG_FUNC(float, float, numo_cSFloat, numo_cSFloat, slange)
56
- DEF_LINALG_FUNC(lapack_complex_double, double, numo_cDComplex, numo_cDFloat, zlange)
57
- DEF_LINALG_FUNC(lapack_complex_float, float, numo_cSComplex, numo_cSFloat, clange)
54
+ DEF_LINALG_FUNC(double, numo_cDFloat, double, numo_cDFloat, dlange)
55
+ DEF_LINALG_FUNC(float, numo_cSFloat, float, numo_cSFloat, slange)
56
+ DEF_LINALG_FUNC(lapack_complex_double, numo_cDComplex, double, numo_cDFloat, zlange)
57
+ DEF_LINALG_FUNC(lapack_complex_float, numo_cSComplex, float, numo_cSFloat, clange)
58
58
 
59
59
  #undef DEF_LINALG_FUNC
60
60
 
@@ -5,6 +5,6 @@ module Numo
5
5
  # Numo::Linalg Alternative (numo-linalg-alt) is an alternative to Numo::Linalg.
6
6
  module Linalg
7
7
  # The version of numo-linalg-alt you install.
8
- VERSION = '0.7.0'
8
+ VERSION = '0.7.1'
9
9
  end
10
10
  end
data/lib/numo/linalg.rb CHANGED
@@ -1,8 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'numo/narray'
3
+ require 'numo/narray/alt'
4
+
5
+ # On distributions like Rocky Linux, native extensions are installed in a separate
6
+ # directory from Ruby code, so use require to load them.
7
+ require 'numo/linalg/linalg'
4
8
  require_relative 'linalg/version'
5
- require_relative 'linalg/linalg'
6
9
 
7
10
  # Ruby/Numo (NUmerical MOdules)
8
11
  module Numo
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-linalg-alt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.9.3
18
+ version: 0.9.10
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 0.9.3
25
+ version: 0.9.10
26
26
  description: |
27
27
  Numo::Linalg Alternative (numo-linalg-alt) is an alternative to Numo::Linalg.
28
28
  Unlike Numo::Linalg, numo-linalg-alt depends on Numo::NArray Alternative (numo-narray-alt).
@@ -145,7 +145,7 @@ metadata:
145
145
  homepage_uri: https://github.com/yoshoku/numo-linalg-alt
146
146
  source_code_uri: https://github.com/yoshoku/numo-linalg-alt
147
147
  changelog_uri: https://github.com/yoshoku/numo-linalg-alt/blob/main/CHANGELOG.md
148
- documentation_uri: https://gemdocs.org/gems/numo-linalg-alt/0.7.0/
148
+ documentation_uri: https://gemdocs.org/gems/numo-linalg-alt/0.7.1/
149
149
  rubygems_mfa_required: 'true'
150
150
  rdoc_options: []
151
151
  require_paths: