numo-pocketfft 0.2.2 → 0.3.0

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: 4bd70edeb6b4247e01c8cc7cf439830a158518550f3c95c4ca5b502ae6ef7c2d
4
- data.tar.gz: 2ff73865a15805b7e8e69d55ac87f892d3d0e4aea9b0e2af7cd129b3fa489d63
3
+ metadata.gz: f3fe78551040f4879625ac62a60b76e257893e014f30f1d740d8fccfac4f4f2b
4
+ data.tar.gz: 6fdc89c8a1143109859fd2ac77b1a27bc03ca3979ddf3421b13efcd3588905d6
5
5
  SHA512:
6
- metadata.gz: ef1cfc56b929763495695a28855217292a65126cdbf7134aaa208334722b75456724e0196719932c7fedbcad2dc010e8d34d937c65554429992b623ed6bfdf9f
7
- data.tar.gz: '08917a93b37b1c81519a5ad11fde74585077eee3d80761b17a2cbac24b8a67b01ae48f1afdedf8aee8a872af28eaf3df48a6c06006a6b53f2ab0381941bd5573'
6
+ metadata.gz: 6bed07e163241fc82e64236739eeaadebe8030307b08e07e53a9637abf4283cbb1250fb0c68213c03a127c953bc7c4c3317f52743423fa6f4a5234bec5f06707
7
+ data.tar.gz: c71560d98756712516bfcdd494e236f3ff945cf1f989211c068d81bb27305875ca2ebbc361026f49d9e04a937b59881510109b72860e42d732ca3efc2caa5354
data/.clang-format ADDED
@@ -0,0 +1,149 @@
1
+ ---
2
+ Language: Cpp
3
+ # BasedOnStyle: LLVM
4
+ AccessModifierOffset: -2
5
+ AlignAfterOpenBracket: Align
6
+ AlignConsecutiveMacros: false
7
+ AlignConsecutiveAssignments: false
8
+ AlignConsecutiveBitFields: false
9
+ AlignConsecutiveDeclarations: false
10
+ AlignEscapedNewlines: Right
11
+ AlignOperands: Align
12
+ AlignTrailingComments: true
13
+ AllowAllArgumentsOnNextLine: true
14
+ AllowAllConstructorInitializersOnNextLine: true
15
+ AllowAllParametersOfDeclarationOnNextLine: true
16
+ AllowShortEnumsOnASingleLine: true
17
+ AllowShortBlocksOnASingleLine: Never
18
+ AllowShortCaseLabelsOnASingleLine: false
19
+ AllowShortFunctionsOnASingleLine: All
20
+ AllowShortLambdasOnASingleLine: All
21
+ AllowShortIfStatementsOnASingleLine: Never
22
+ AllowShortLoopsOnASingleLine: false
23
+ AlwaysBreakAfterDefinitionReturnType: None
24
+ AlwaysBreakAfterReturnType: None
25
+ AlwaysBreakBeforeMultilineStrings: false
26
+ AlwaysBreakTemplateDeclarations: MultiLine
27
+ BinPackArguments: true
28
+ BinPackParameters: true
29
+ BraceWrapping:
30
+ AfterCaseLabel: false
31
+ AfterClass: false
32
+ AfterControlStatement: Never
33
+ AfterEnum: false
34
+ AfterFunction: false
35
+ AfterNamespace: false
36
+ AfterObjCDeclaration: false
37
+ AfterStruct: false
38
+ AfterUnion: false
39
+ AfterExternBlock: false
40
+ BeforeCatch: false
41
+ BeforeElse: false
42
+ BeforeLambdaBody: false
43
+ BeforeWhile: false
44
+ IndentBraces: false
45
+ SplitEmptyFunction: true
46
+ SplitEmptyRecord: true
47
+ SplitEmptyNamespace: true
48
+ BreakBeforeBinaryOperators: None
49
+ BreakBeforeBraces: Attach
50
+ BreakBeforeInheritanceComma: false
51
+ BreakInheritanceList: BeforeColon
52
+ BreakBeforeTernaryOperators: true
53
+ BreakConstructorInitializersBeforeComma: false
54
+ BreakConstructorInitializers: BeforeColon
55
+ BreakAfterJavaFieldAnnotations: false
56
+ BreakStringLiterals: true
57
+ ColumnLimit: 128
58
+ CommentPragmas: '^ IWYU pragma:'
59
+ CompactNamespaces: false
60
+ ConstructorInitializerAllOnOneLineOrOnePerLine: false
61
+ ConstructorInitializerIndentWidth: 4
62
+ ContinuationIndentWidth: 4
63
+ Cpp11BracedListStyle: true
64
+ DeriveLineEnding: true
65
+ DerivePointerAlignment: false
66
+ DisableFormat: false
67
+ ExperimentalAutoDetectBinPacking: false
68
+ FixNamespaceComments: true
69
+ ForEachMacros:
70
+ - foreach
71
+ - Q_FOREACH
72
+ - BOOST_FOREACH
73
+ IncludeBlocks: Preserve
74
+ IncludeCategories:
75
+ - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
76
+ Priority: 2
77
+ SortPriority: 0
78
+ - Regex: '^(<|"(gtest|gmock|isl|json)/)'
79
+ Priority: 3
80
+ SortPriority: 0
81
+ - Regex: '.*'
82
+ Priority: 1
83
+ SortPriority: 0
84
+ IncludeIsMainRegex: '(Test)?$'
85
+ IncludeIsMainSourceRegex: ''
86
+ IndentCaseLabels: false
87
+ IndentCaseBlocks: false
88
+ IndentGotoLabels: true
89
+ IndentPPDirectives: None
90
+ IndentExternBlock: AfterExternBlock
91
+ IndentWidth: 2
92
+ IndentWrappedFunctionNames: false
93
+ InsertTrailingCommas: None
94
+ JavaScriptQuotes: Leave
95
+ JavaScriptWrapImports: true
96
+ KeepEmptyLinesAtTheStartOfBlocks: true
97
+ MacroBlockBegin: ''
98
+ MacroBlockEnd: ''
99
+ MaxEmptyLinesToKeep: 1
100
+ NamespaceIndentation: None
101
+ ObjCBinPackProtocolList: Auto
102
+ ObjCBlockIndentWidth: 2
103
+ ObjCBreakBeforeNestedBlockParam: true
104
+ ObjCSpaceAfterProperty: false
105
+ ObjCSpaceBeforeProtocolList: true
106
+ PenaltyBreakAssignment: 2
107
+ PenaltyBreakBeforeFirstCallParameter: 19
108
+ PenaltyBreakComment: 300
109
+ PenaltyBreakFirstLessLess: 120
110
+ PenaltyBreakString: 1000
111
+ PenaltyBreakTemplateDeclaration: 10
112
+ PenaltyExcessCharacter: 1000000
113
+ PenaltyReturnTypeOnItsOwnLine: 60
114
+ PointerAlignment: Left
115
+ ReflowComments: true
116
+ SortIncludes: true
117
+ SortUsingDeclarations: true
118
+ SpaceAfterCStyleCast: false
119
+ SpaceAfterLogicalNot: false
120
+ SpaceAfterTemplateKeyword: true
121
+ SpaceBeforeAssignmentOperators: true
122
+ SpaceBeforeCpp11BracedList: false
123
+ SpaceBeforeCtorInitializerColon: true
124
+ SpaceBeforeInheritanceColon: true
125
+ SpaceBeforeParens: ControlStatements
126
+ SpaceBeforeRangeBasedForLoopColon: true
127
+ SpaceInEmptyBlock: false
128
+ SpaceInEmptyParentheses: false
129
+ SpacesBeforeTrailingComments: 1
130
+ SpacesInAngles: false
131
+ SpacesInConditionalStatement: false
132
+ SpacesInContainerLiterals: true
133
+ SpacesInCStyleCastParentheses: false
134
+ SpacesInParentheses: false
135
+ SpacesInSquareBrackets: false
136
+ SpaceBeforeSquareBrackets: false
137
+ Standard: Latest
138
+ StatementMacros:
139
+ - Q_UNUSED
140
+ - QT_REQUIRE_VERSION
141
+ TabWidth: 8
142
+ UseCRLF: false
143
+ UseTab: Never
144
+ WhitespaceSensitiveMacros:
145
+ - STRINGIZE
146
+ - PP_STRINGIZE
147
+ - BOOST_PP_STRINGIZE
148
+ ...
149
+
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: ubuntu-20.04
8
8
  strategy:
9
9
  matrix:
10
- ruby: [ '2.5', '2.6', '2.7' ]
10
+ ruby: [ '2.6', '2.7', '3.0' ]
11
11
  steps:
12
12
  - uses: actions/checkout@v2
13
13
  - name: Checkout submodule
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.3.0
2
+ - Add type declaration file: sig/numo/pocketfft.rbs
3
+ - Refactor to avoid generating unnecessary arrays.
4
+
1
5
  # 0.2.2
2
6
  - Fix bug that caused segmentation fault due to garbage collection ([#4](https://github.com/yoshoku/numo-pocketfft/pull/4)).
3
7
  - Fix some configuration files.
data/Gemfile CHANGED
@@ -3,8 +3,10 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in numo-pocketfft.gemspec
4
4
  gemspec
5
5
 
6
- gem 'rake', '~> 12.0'
6
+ gem 'rake', '~> 13.0'
7
7
  gem 'rake-compiler', '~> 1.0'
8
8
  gem 'rspec', '~> 3.0'
9
9
  gem 'simplecov', '~> 0.19'
10
10
  gem 'simplecov-lcov', '~> 0.8'
11
+ gem 'rbs', '~> 1.2'
12
+ gem 'steep', '~> 0.44'
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Numo::Pocketfft
2
2
 
3
3
  [![Build Status](https://github.com/yoshoku/numo-pocketfft/workflows/build/badge.svg)](https://github.com/yoshoku/numo-pocketfft/actions?query=workflow%3Abuild)
4
- [![Coverage Status](https://coveralls.io/repos/github/yoshoku/numo-pocketfft/badge.svg?branch=master)](https://coveralls.io/github/yoshoku/numo-pocketfft?branch=master)
4
+ [![Coverage Status](https://coveralls.io/repos/github/yoshoku/numo-pocketfft/badge.svg?branch=main)](https://coveralls.io/github/yoshoku/numo-pocketfft?branch=main)
5
5
  [![Gem Version](https://badge.fury.io/rb/numo-pocketfft.svg)](https://badge.fury.io/rb/numo-pocketfft)
6
6
  [![BSD 3-Clause License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/yoshoku/numo-pocketfft/blob/main/LICENSE.txt)
7
7
  [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](https://yoshoku.github.io/numo-pocketfft/doc/)
data/Steepfile ADDED
@@ -0,0 +1,20 @@
1
+ target :lib do
2
+ signature "sig"
3
+ #
4
+ check "lib" # Directory name
5
+ # check "Gemfile" # File name
6
+ # check "app/models/**/*.rb" # Glob
7
+ # # ignore "lib/templates/*.rb"
8
+ #
9
+ # # library "pathname", "set" # Standard libraries
10
+ # library "numo-narray" # Gems
11
+ end
12
+
13
+ # target :spec do
14
+ # signature "sig", "sig-private"
15
+ #
16
+ # check "spec"
17
+ #
18
+ # # library "pathname", "set" # Standard libraries
19
+ # # library "rspec"
20
+ # end
@@ -3,8 +3,7 @@
3
3
  VALUE mNumo;
4
4
  VALUE mPocketfft;
5
5
 
6
- VALUE numo_pocketfft_fft(VALUE x_val, int is_forward)
7
- {
6
+ VALUE numo_pocketfft_fft(VALUE x_val, int is_forward) {
8
7
  narray_t* x_nary;
9
8
  double* x_pt;
10
9
  size_t length;
@@ -40,7 +39,7 @@ VALUE numo_pocketfft_fft(VALUE x_val, int is_forward)
40
39
  z_val = nary_s_new_like(numo_cDComplex, x_val);
41
40
  z_pt = (double*)na_get_pointer_for_write(z_val);
42
41
  GetNArray(z_val, z_nary);
43
- for (i = 0; i < (int)(NA_SIZE(z_nary) * 2); z_pt[i++] = 0.0);
42
+ memset(z_pt, 0, (NA_SIZE(z_nary) * 2) * sizeof(double));
44
43
 
45
44
  fail = 0;
46
45
  fct = is_forward == 1 ? 1.0 : 1.0 / length;
@@ -74,24 +73,17 @@ VALUE numo_pocketfft_fft(VALUE x_val, int is_forward)
74
73
  /**
75
74
  * @!visibility private
76
75
  */
77
- static VALUE numo_pocketfft_cfft(VALUE self, VALUE x_val)
78
- {
79
- return numo_pocketfft_fft(x_val, 1);
80
- }
76
+ static VALUE numo_pocketfft_cfft(VALUE self, VALUE x_val) { return numo_pocketfft_fft(x_val, 1); }
81
77
 
82
78
  /**
83
79
  * @!visibility private
84
80
  */
85
- static VALUE numo_pocketfft_icfft(VALUE self, VALUE x_val)
86
- {
87
- return numo_pocketfft_fft(x_val, 0);
88
- }
81
+ static VALUE numo_pocketfft_icfft(VALUE self, VALUE x_val) { return numo_pocketfft_fft(x_val, 0); }
89
82
 
90
83
  /**
91
84
  * @!visibility private
92
85
  */
93
- static VALUE numo_pocketfft_rfft(VALUE self, VALUE x_val)
94
- {
86
+ static VALUE numo_pocketfft_rfft(VALUE self, VALUE x_val) {
95
87
  narray_t* x_nary;
96
88
  double* x_pt;
97
89
  int n_dims;
@@ -132,7 +124,7 @@ static VALUE numo_pocketfft_rfft(VALUE self, VALUE x_val)
132
124
  z_val = rb_narray_new(numo_cDComplex, n_dims, z_shape);
133
125
  z_pt = (double*)na_get_pointer_for_write(z_val);
134
126
  GetNArray(z_val, z_nary);
135
- for (i = 0; i < (int)(NA_SIZE(z_nary) * 2); z_pt[i++] = 0.0);
127
+ memset(z_pt, 0, (NA_SIZE(z_nary) * 2) * sizeof(double));
136
128
 
137
129
  fail = 0;
138
130
  z_step = (int)(NA_SHAPE(z_nary)[n_dims - 1]) * 2;
@@ -168,8 +160,7 @@ static VALUE numo_pocketfft_rfft(VALUE self, VALUE x_val)
168
160
  /**
169
161
  * @!visibility private
170
162
  */
171
- static VALUE numo_pocketfft_irfft(VALUE self, VALUE x_val)
172
- {
163
+ static VALUE numo_pocketfft_irfft(VALUE self, VALUE x_val) {
173
164
  narray_t* x_nary;
174
165
  double* x_pt;
175
166
  size_t length;
@@ -210,7 +201,7 @@ static VALUE numo_pocketfft_irfft(VALUE self, VALUE x_val)
210
201
  z_val = rb_narray_new(numo_cDFloat, n_dims, z_shape);
211
202
  z_pt = (double*)na_get_pointer_for_write(z_val);
212
203
  GetNArray(z_val, z_nary);
213
- for (i = 0; i < (int)NA_SIZE(z_nary); z_pt[i++] = 0.0);
204
+ memset(z_pt, 0, NA_SIZE(z_nary) * sizeof(double));
214
205
 
215
206
  fail = 0;
216
207
  fct = 1.0 / length;
@@ -241,8 +232,7 @@ static VALUE numo_pocketfft_irfft(VALUE self, VALUE x_val)
241
232
  return z_val;
242
233
  }
243
234
 
244
- void Init_pocketfftext()
245
- {
235
+ void Init_pocketfftext() {
246
236
  rb_require("numo/narray");
247
237
 
248
238
  mNumo = rb_define_module("Numo");
@@ -5,6 +5,7 @@
5
5
  #include <string.h>
6
6
 
7
7
  #include <ruby.h>
8
+
8
9
  #include <numo/narray.h>
9
10
  #include <numo/template.h>
10
11
 
@@ -64,8 +64,11 @@ module Numo
64
64
  raise ArgumentError, 'Expect class of input array to be Numo::NArray.' unless a.is_a?(Numo::NArray)
65
65
  raise ArgumentError, 'Expect input array to be non-empty.' if a.empty?
66
66
 
67
- b = a.dup
68
- (0...b.ndim).to_a.reverse.each { |ax_id| b = raw_fft(b, ax_id, inverse: false, real: false) }
67
+ return raw_fft(a, 0, inverse: false, real: false) if a.ndim == 1
68
+
69
+ last_axis_id = a.ndim - 1
70
+ b = raw_fft(a, last_axis_id, inverse: false, real: false)
71
+ (last_axis_id - 1).downto(0) { |ax_id| b = raw_fft(b, ax_id, inverse: false, real: false) }
69
72
  b
70
73
  end
71
74
 
@@ -77,8 +80,11 @@ module Numo
77
80
  raise ArgumentError, 'Expect class of input array to be Numo::NArray.' unless a.is_a?(Numo::NArray)
78
81
  raise ArgumentError, 'Expect input array to be non-empty.' if a.empty?
79
82
 
80
- b = a.dup
81
- (0...b.ndim).to_a.each { |ax_id| b = raw_fft(b, ax_id, inverse: true, real: false) }
83
+ return raw_fft(a, 0, inverse: true, real: false) if a.ndim == 1
84
+
85
+ last_axis_id = a.ndim - 1
86
+ b = raw_fft(a, 0, inverse: true, real: false)
87
+ 1.upto(last_axis_id) { |ax_id| b = raw_fft(b, ax_id, inverse: true, real: false) }
82
88
  b
83
89
  end
84
90
 
@@ -138,9 +144,11 @@ module Numo
138
144
  raise ArgumentError, 'Expect class of input array to be Numo::NArray.' unless a.is_a?(Numo::NArray)
139
145
  raise ArgumentError, 'Expect input array to be non-empty.' if a.empty?
140
146
 
147
+ return raw_fft(a, 0, inverse: false, real: true) if a.ndim == 1
148
+
141
149
  last_axis_id = a.ndim - 1
142
150
  b = raw_fft(a, last_axis_id, inverse: false, real: true)
143
- (0...last_axis_id).to_a.reverse.each { |ax_id| b = raw_fft(b, ax_id, inverse: false, real: false) }
151
+ (last_axis_id - 1).downto(0) { |ax_id| b = raw_fft(b, ax_id, inverse: false, real: false) }
144
152
  b
145
153
  end
146
154
 
@@ -152,9 +160,11 @@ module Numo
152
160
  raise ArgumentError, 'Expect class of input array to be Numo::NArray.' unless a.is_a?(Numo::NArray)
153
161
  raise ArgumentError, 'Expect input array to be non-empty.' if a.empty?
154
162
 
163
+ return raw_fft(a, 0, inverse: true, real: true) if a.ndim == 1
164
+
155
165
  last_axis_id = a.ndim - 1
156
- b = a.dup
157
- (0...last_axis_id).to_a.each { |ax_id| b = raw_fft(b, ax_id, inverse: true, real: false) }
166
+ b = raw_fft(a, 0, inverse: true, real: false)
167
+ 1.upto(last_axis_id - 1) { |ax_id| b = raw_fft(b, ax_id, inverse: true, real: false) }
158
168
  raw_fft(b, last_axis_id, inverse: true, real: true)
159
169
  end
160
170
 
@@ -209,8 +219,7 @@ module Numo
209
219
  b_shape = a.shape
210
220
  b_shape[-1] = n
211
221
  b = Numo::DComplex.zeros(*b_shape)
212
- b_range = [true] * b.ndim
213
- b_range[-1] = 0...a.shape[-1]
222
+ b_range = Array.new(b.ndim) { |idx| idx < b.ndim - 1 ? true : 0...a.shape[-1] }
214
223
  b[*b_range] = a
215
224
  # inverse of dft for real data
216
225
  ext_irfft(b)
@@ -5,6 +5,6 @@ module Numo
5
5
  # Numo::Pocketfft is the module that has functions for Fourier transform.
6
6
  module Pocketfft
7
7
  # The version of Numo::Pocketfft you are using.
8
- VERSION = '0.2.2'
8
+ VERSION = '0.3.0'
9
9
  end
10
10
  end
@@ -0,0 +1,28 @@
1
+ module Numo
2
+ module Pocketfft
3
+ VERSION: String
4
+
5
+ def self?.fft: (Numo::DFloat | Numo::DComplex a) -> Numo::DComplex
6
+ def self?.fft2: (Numo::DFloat | Numo::DComplex a) -> Numo::DComplex
7
+ def self?.fftn: (Numo::DFloat | Numo::DComplex a) -> Numo::DComplex
8
+ def self?.ifft: (Numo::DComplex a) -> Numo::DComplex
9
+ def self?.ifft2: (Numo::DComplex a) -> Numo::DComplex
10
+ def self?.ifftn: (Numo::DComplex a) -> Numo::DComplex
11
+ def self?.rfft: (Numo::DFloat a) -> Numo::DComplex
12
+ def self?.rfft2: (Numo::DFloat a) -> Numo::DComplex
13
+ def self?.rfftn: (Numo::DFloat a) -> Numo::DComplex
14
+ def self?.irfft: (Numo::DComplex a) -> Numo::DFloat
15
+ def self?.irfft2: (Numo::DComplex a) -> Numo::DFloat
16
+ def self?.irfftn: (Numo::DComplex a) -> Numo::DFloat
17
+ def self?.fftconvolve: (Numo::DFloat | Numo::DComplex a, Numo::DFloat | Numo::DComplex b) -> Numo::DComplex
18
+ | (Numo::DFloat a, Numo::DFloat b) -> Numo::DFloat
19
+
20
+ private
21
+
22
+ def self?.ext_cfft: (untyped a) -> untyped
23
+ def self?.ext_icfft: (untyped a) -> untyped
24
+ def self?.ext_rfft: (untyped a) -> untyped
25
+ def self?.ext_irfft: (untyped a) -> untyped
26
+ def self?.raw_fft: (untyped a, Integer axis_id, inverse: bool inverse, real: bool real) -> untyped
27
+ end
28
+ end
data/sig/patch.rbs ADDED
@@ -0,0 +1,22 @@
1
+ module Numo
2
+ class NArray
3
+ def empty?: () -> bool
4
+ def ndim: () -> Integer
5
+ def shape: () -> Array[Integer]
6
+ def swapaxes: (Integer, Integer) -> untyped
7
+ end
8
+
9
+ class DFloat < NArray
10
+ def *: (untyped) -> untyped
11
+ def []: (*untyped) -> untyped
12
+ def []=: (*untyped) -> untyped
13
+ end
14
+
15
+ class DComplex < NArray
16
+ def self.zeros: (*untyped) -> Numo::DComplex
17
+ def *: (untyped) -> untyped
18
+ def []: (*untyped) -> untyped
19
+ def []=: (*untyped) -> untyped
20
+ def real: () -> Numo::DFloat
21
+ end
22
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-pocketfft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-16 00:00:00.000000000 Z
11
+ date: 2021-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -27,7 +27,7 @@ dependencies:
27
27
  description: 'Numo::Pocketfft provides functions for descrete Fourier Transform based
28
28
  on pocketfft.
29
29
 
30
- '
30
+ '
31
31
  email:
32
32
  - yoshoku@outlook.com
33
33
  executables: []
@@ -35,6 +35,7 @@ extensions:
35
35
  - ext/numo/pocketfft/extconf.rb
36
36
  extra_rdoc_files: []
37
37
  files:
38
+ - ".clang-format"
38
39
  - ".coveralls.yml"
39
40
  - ".github/workflows/build.yml"
40
41
  - ".github/workflows/coverage.yml"
@@ -47,6 +48,7 @@ files:
47
48
  - LICENSE.txt
48
49
  - README.md
49
50
  - Rakefile
51
+ - Steepfile
50
52
  - ext/numo/pocketfft/extconf.rb
51
53
  - ext/numo/pocketfft/pocketfft/.gitlab-ci.yml
52
54
  - ext/numo/pocketfft/pocketfft/LICENSE.md
@@ -60,6 +62,8 @@ files:
60
62
  - lib/numo/pocketfft.rb
61
63
  - lib/numo/pocketfft/version.rb
62
64
  - numo-pocketfft.gemspec
65
+ - sig/numo/pocketfft.rbs
66
+ - sig/patch.rbs
63
67
  homepage: https://github.com/yoshoku/numo-pocketfft
64
68
  licenses:
65
69
  - BSD-3-Clause
@@ -69,7 +73,7 @@ metadata:
69
73
  source_code_uri: https://github.com/yoshoku/numo-pocketfft
70
74
  documentation_uri: https://yoshoku.github.io/numo-pocketfft/doc/
71
75
  bug_tracker_uri: https://github.com/yoshoku/numo-pocketfft/issues
72
- post_install_message:
76
+ post_install_message:
73
77
  rdoc_options: []
74
78
  require_paths:
75
79
  - lib
@@ -84,8 +88,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
88
  - !ruby/object:Gem::Version
85
89
  version: '0'
86
90
  requirements: []
87
- rubygems_version: 3.1.4
88
- signing_key:
91
+ rubygems_version: 3.1.6
92
+ signing_key:
89
93
  specification_version: 4
90
94
  summary: Numo::Pocketfft provides functions for descrete Fourier Transform based on
91
95
  pocketfft.