magro 0.4.3 → 0.5.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: f911e57e71f9fda41695c940712fd4e471d543dab28e924c9d15459cac02d62e
4
- data.tar.gz: 37a3d0c6702219ec3cfee20fe9f319e2aff5945d1ed6d3ba28f842a9eee4a4c0
3
+ metadata.gz: 1383da33f22a42bc1dbf7ed16cd1f6d21d0e8444967fb027b29bb39dd189d836
4
+ data.tar.gz: 710cb0248ab131d7a5cfc6671b0ec2e83f335287221dfe795887bf3784b0a682
5
5
  SHA512:
6
- metadata.gz: ff9033acf66ce81535d2c9aaa0e8843a35004cf9082b84b9aad1169c859074658e1b0bdb30b144d20f594264a7ad94c2be039f22462b1f8976edff9ffb08a01b
7
- data.tar.gz: 938646fe6a9d838ec85f429a117f94ca44feb035d7e6b40ac8480549f81007b967a5ba6f79a204949848f5a4e9d17b25c360221744eb39b3d2f7beb6ec791d06
6
+ metadata.gz: c3bb0a6c16df89efa22b8e057b425fba66235c826f9d2fcaca74d8191825f8b6153d440fe1edda003b311cef313b2ec8b7a817d3a7e54b86f182474bad26899f
7
+ data.tar.gz: 804a97560558d95d56a9867c4a1b36275a1aaca62a872a340ba2eb2a765a3b9e120e072ddc8a6d923b12b20b304f2b25e0e83d957fbe4b3dbf72a0bfe618c471
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', '3.0' ]
10
+ ruby: [ '2.6', '2.7', '3.0' ]
11
11
  steps:
12
12
  - uses: actions/checkout@v2
13
13
  - name: Install libpng and libjpeg
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.5.0
2
+ - Add type declaration files.
3
+ - Refactor some codes.
4
+
1
5
  # 0.4.3
2
6
  - Fix imread method to read image from URL.
3
7
  - Fix some configulation files.
data/Gemfile CHANGED
@@ -9,3 +9,5 @@ gem 'rake-compiler', '~> 1.0'
9
9
  gem 'rspec', '~> 3.0'
10
10
  gem 'simplecov', '~> 0.19'
11
11
  gem 'simplecov-lcov', '~> 0.8'
12
+ gem 'rbs', '~> 1.2'
13
+ gem 'steep', '~> 0.44'
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 "strong_json" # 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
data/ext/magro/imgrw.c CHANGED
@@ -5,9 +5,7 @@ RUBY_EXTERN VALUE mMagro;
5
5
  /**
6
6
  * @!visibility private
7
7
  */
8
- static
9
- VALUE magro_io_read_png(VALUE self, VALUE filename_)
10
- {
8
+ static VALUE magro_io_read_png(VALUE self, VALUE filename_) {
11
9
  char* filename = StringValuePtr(filename_);
12
10
  FILE* file_ptr = fopen(filename, "rb");
13
11
  unsigned char header[8];
@@ -21,7 +19,7 @@ VALUE magro_io_read_png(VALUE self, VALUE filename_)
21
19
  png_uint_32 y;
22
20
  int n_dims = 0;
23
21
  int n_ch;
24
- size_t shape[3] = { 0 };
22
+ size_t shape[3] = {0};
25
23
  VALUE nary;
26
24
  uint8_t* nary_ptr;
27
25
 
@@ -76,36 +74,36 @@ VALUE magro_io_read_png(VALUE self, VALUE filename_)
76
74
  }
77
75
 
78
76
  switch (color_type) {
79
- case PNG_COLOR_TYPE_GRAY:
80
- n_ch = 1;
81
- n_dims = 2;
82
- shape[0] = height;
83
- shape[1] = width;
84
- break;
85
- case PNG_COLOR_TYPE_GRAY_ALPHA:
86
- n_ch = 2;
87
- n_dims = 3;
88
- shape[0] = height;
89
- shape[1] = width;
90
- shape[2] = 2;
91
- break;
92
- case PNG_COLOR_TYPE_RGB:
93
- n_ch = 3;
94
- n_dims = 3;
95
- shape[0] = height;
96
- shape[1] = width;
97
- shape[2] = 3;
98
- break;
99
- case PNG_COLOR_TYPE_RGB_ALPHA:
100
- n_ch = 4;
101
- n_dims = 3;
102
- shape[0] = height;
103
- shape[1] = width;
104
- shape[2] = 4;
105
- break;
106
- default:
107
- n_dims = 0;
108
- break;
77
+ case PNG_COLOR_TYPE_GRAY:
78
+ n_ch = 1;
79
+ n_dims = 2;
80
+ shape[0] = height;
81
+ shape[1] = width;
82
+ break;
83
+ case PNG_COLOR_TYPE_GRAY_ALPHA:
84
+ n_ch = 2;
85
+ n_dims = 3;
86
+ shape[0] = height;
87
+ shape[1] = width;
88
+ shape[2] = 2;
89
+ break;
90
+ case PNG_COLOR_TYPE_RGB:
91
+ n_ch = 3;
92
+ n_dims = 3;
93
+ shape[0] = height;
94
+ shape[1] = width;
95
+ shape[2] = 3;
96
+ break;
97
+ case PNG_COLOR_TYPE_RGB_ALPHA:
98
+ n_ch = 4;
99
+ n_dims = 3;
100
+ shape[0] = height;
101
+ shape[1] = width;
102
+ shape[2] = 4;
103
+ break;
104
+ default:
105
+ n_dims = 0;
106
+ break;
109
107
  }
110
108
 
111
109
  if (n_dims == 0) {
@@ -134,9 +132,7 @@ VALUE magro_io_read_png(VALUE self, VALUE filename_)
134
132
  /**
135
133
  * @!visibility private
136
134
  */
137
- static
138
- VALUE magro_io_save_png(VALUE self, VALUE filename_, VALUE image)
139
- {
135
+ static VALUE magro_io_save_png(VALUE self, VALUE filename_, VALUE image) {
140
136
  char* filename = StringValuePtr(filename_);
141
137
  FILE* file_ptr = fopen(filename, "wb");
142
138
  png_structp png_ptr;
@@ -175,18 +171,18 @@ VALUE magro_io_save_png(VALUE self, VALUE filename_, VALUE image)
175
171
  }
176
172
 
177
173
  switch (n_ch) {
178
- case 4:
179
- color_type = PNG_COLOR_TYPE_RGBA;
180
- break;
181
- case 3:
182
- color_type = PNG_COLOR_TYPE_RGB;
183
- break;
184
- case 2:
185
- color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
186
- break;
187
- default:
188
- color_type = PNG_COLOR_TYPE_GRAY;
189
- break;
174
+ case 4:
175
+ color_type = PNG_COLOR_TYPE_RGBA;
176
+ break;
177
+ case 3:
178
+ color_type = PNG_COLOR_TYPE_RGB;
179
+ break;
180
+ case 2:
181
+ color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
182
+ break;
183
+ default:
184
+ color_type = PNG_COLOR_TYPE_GRAY;
185
+ break;
190
186
  }
191
187
 
192
188
  png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
@@ -208,8 +204,8 @@ VALUE magro_io_save_png(VALUE self, VALUE filename_, VALUE image)
208
204
  return Qfalse;
209
205
  }
210
206
 
211
- png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, color_type,
212
- PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
207
+ png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
208
+ PNG_FILTER_TYPE_DEFAULT);
213
209
 
214
210
  row_ptr_ptr = png_malloc(png_ptr, height * sizeof(png_bytep));
215
211
  for (y = 0; y < height; y++) {
@@ -239,9 +235,7 @@ struct my_error_mgr {
239
235
  jmp_buf setjmp_buffer;
240
236
  };
241
237
 
242
- static void
243
- my_error_exit(j_common_ptr cinfo)
244
- {
238
+ static void my_error_exit(j_common_ptr cinfo) {
245
239
  struct my_error_mgr* my_err = (struct my_error_mgr*)cinfo->err;
246
240
  (*cinfo->err->output_message)(cinfo);
247
241
  longjmp(my_err->setjmp_buffer, 1);
@@ -250,16 +244,14 @@ my_error_exit(j_common_ptr cinfo)
250
244
  /**
251
245
  * @!visibility private
252
246
  */
253
- static
254
- VALUE magro_io_read_jpg(VALUE self, VALUE filename_)
255
- {
247
+ static VALUE magro_io_read_jpg(VALUE self, VALUE filename_) {
256
248
  char* filename = StringValuePtr(filename_);
257
249
  FILE* file_ptr = fopen(filename, "rb");
258
250
  struct jpeg_decompress_struct jpeg;
259
251
  struct my_error_mgr err;
260
252
  unsigned int width, height;
261
253
  int n_colors;
262
- size_t shape[3] = { 0 };
254
+ size_t shape[3] = {0};
263
255
  int n_dims;
264
256
  unsigned int y;
265
257
  VALUE nary;
@@ -311,9 +303,7 @@ VALUE magro_io_read_jpg(VALUE self, VALUE filename_)
311
303
  /**
312
304
  * @!visibility private
313
305
  */
314
- static
315
- VALUE magro_io_save_jpg(int argc, VALUE* argv, VALUE self)
316
- {
306
+ static VALUE magro_io_save_jpg(int argc, VALUE* argv, VALUE self) {
317
307
  VALUE filename_;
318
308
  VALUE image;
319
309
  VALUE quality_;
@@ -378,15 +368,15 @@ VALUE magro_io_save_jpg(int argc, VALUE* argv, VALUE self)
378
368
  jpeg.input_components = n_ch;
379
369
 
380
370
  switch (n_ch) {
381
- case 3:
382
- jpeg.in_color_space = JCS_RGB;
383
- break;
384
- case 1:
385
- jpeg.in_color_space = JCS_GRAYSCALE;
386
- break;
387
- default:
388
- jpeg.in_color_space = JCS_UNKNOWN;
389
- break;
371
+ case 3:
372
+ jpeg.in_color_space = JCS_RGB;
373
+ break;
374
+ case 1:
375
+ jpeg.in_color_space = JCS_GRAYSCALE;
376
+ break;
377
+ default:
378
+ jpeg.in_color_space = JCS_UNKNOWN;
379
+ break;
390
380
  }
391
381
 
392
382
  jpeg_set_defaults(&jpeg);
@@ -411,8 +401,7 @@ VALUE magro_io_save_jpg(int argc, VALUE* argv, VALUE self)
411
401
  return Qtrue;
412
402
  }
413
403
 
414
- void init_io_module()
415
- {
404
+ void init_io_module() {
416
405
  VALUE mIO = rb_define_module_under(mMagro, "IO");
417
406
  rb_define_module_function(mIO, "read_png", magro_io_read_png, 1);
418
407
  rb_define_module_function(mIO, "save_png", magro_io_save_png, 2);
data/ext/magro/imgrw.h CHANGED
@@ -6,10 +6,12 @@
6
6
  #include <string.h>
7
7
 
8
8
  #include <setjmp.h>
9
- #include <png.h>
9
+
10
10
  #include <jpeglib.h>
11
+ #include <png.h>
11
12
 
12
13
  #include <ruby.h>
14
+
13
15
  #include <numo/narray.h>
14
16
  #include <numo/template.h>
15
17
 
data/ext/magro/magro.c CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  VALUE mMagro;
4
4
 
5
- void Init_magro()
6
- {
5
+ void Init_magro() {
7
6
  mMagro = rb_define_module("Magro");
8
7
 
9
8
  init_io_module();
data/lib/magro/filter.rb CHANGED
@@ -32,7 +32,7 @@ module Magro
32
32
  if n_channels.nil?
33
33
  filter1ch(padded, kernel, scale, offset)
34
34
  else
35
- image.class.zeros(*image.shape).tap do |filtered|
35
+ image.class.zeros(image.shape).tap do |filtered|
36
36
  n_channels.times do |c|
37
37
  filtered[true, true, c] = filter1ch(padded[true, true, c], kernel, scale, offset)
38
38
  end
data/lib/magro/version.rb CHANGED
@@ -3,5 +3,5 @@
3
3
  # Magro is an image processing library in Ruby.
4
4
  module Magro
5
5
  # The version of Magro you are using.
6
- VERSION = '0.4.3'
6
+ VERSION = '0.5.0'
7
7
  end
data/sig/magro.rbs ADDED
@@ -0,0 +1,9 @@
1
+ module Magro
2
+ VERSION: String
3
+
4
+ type magro_image_narray = (
5
+ Numo::Int8 | Numo::Int16 | Numo::Int32 | Numo::Int64 |
6
+ Numo::UInt8 | Numo::UInt16 | Numo::UInt32 | Numo::UInt64 |
7
+ Numo::SFloat | Numo::DFloat
8
+ )
9
+ end
@@ -0,0 +1,20 @@
1
+ module Magro
2
+ module Filter
3
+ def self?.filter2d: (Numo::UInt8 image, Numo::DFloat kernel, ?scale: Float? scale, ?offset: Integer offset) -> Numo::UInt8
4
+ def self?.convolve2d: (magro_image_narray arr1, magro_image_narray arr2) -> magro_image_narray
5
+
6
+ private
7
+
8
+ INTEGER_NARRAY: Array[String]
9
+
10
+ #def self?.zero_padding: (magro_image_narray image, Integer filter_h, Integer filter_w) -> magro_image_narray
11
+ #def self?.filter1ch: (magro_image_narray image, Numo::DFloat kernel, Float? scale, Integer offset) -> magro_image_narray
12
+ #def self?.im2col: (magro_image_narray image, Integer filter_h, Integer filter_w) -> magro_image_narray
13
+ #def self?.integer_narray?: (Numo::NArray image) -> bool
14
+
15
+ def self?.zero_padding: (untyped image, Integer filter_h, Integer filter_w) -> untyped
16
+ def self?.filter1ch: (untyped image, Numo::DFloat kernel, Float? scale, Integer offset) -> untyped
17
+ def self?.im2col: (untyped image, Integer filter_h, Integer filter_w) -> untyped
18
+ def self?.integer_narray?: (Numo::NArray image) -> bool
19
+ end
20
+ end
data/sig/magro/io.rbs ADDED
@@ -0,0 +1,14 @@
1
+ module Magro
2
+ module IO
3
+ def self?.imread: (String filename) -> Numo::UInt8?
4
+ def self?.imsave: (String filename, Numo::UInt8 image, ?quality: Integer) -> bool
5
+
6
+ private
7
+
8
+ def self?.read_jpg: (String filename) -> Numo::UInt8
9
+ def self?.read_png: (String filename) -> Numo::UInt8
10
+ def self?.save_jpg: (String filename, Numo::UInt8 image, Integer? quality) -> bool
11
+ def self?.save_png: (String filename, Numo::UInt8 image) -> bool
12
+ def self?.url?: (String str) -> bool
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ module Magro
2
+ module Transform
3
+ def self?.resize: (Numo::UInt8 image, height: Integer height, width: Integer width) -> Numo::UInt8
4
+
5
+ private
6
+
7
+ INTEGER_NARRAY: Array[String]
8
+
9
+ def self?.bilinear_resize: (Numo::UInt8 image, Integer new_height, Integer new_width) -> Numo::UInt8
10
+ def self?.integer_narray?: (Numo::NArray image) -> bool
11
+ end
12
+ end
data/sig/patch.rbs ADDED
@@ -0,0 +1,90 @@
1
+ module Numo
2
+ class NArray
3
+ def self.cast: (untyped a) -> untyped
4
+ def self.zeros: (*Integer) -> untyped
5
+ def self.[]: (*untyped) -> untyped
6
+ def []: () -> untyped
7
+ def []=: () -> untyped
8
+ def +: (untyped) -> untyped
9
+ def empty?: () -> bool
10
+ def flatten: () -> untyped
11
+ def initialize: (*untyped) -> untyped
12
+ def ndim: () -> Integer
13
+ def shape: () -> [Integer, Integer]
14
+ def swapaxes: (Integer, Integer) -> untyped
15
+ def transpose: (*untyped) -> untyped
16
+ end
17
+
18
+ class Int8 < NArray
19
+ def *: (untyped) -> untyped
20
+ def +: (untyped) -> untyped
21
+ def []: (*untyped) -> untyped
22
+ def []=: (*untyped) -> untyped
23
+ end
24
+
25
+ class Int16 < NArray
26
+ def *: (untyped) -> untyped
27
+ def +: (untyped) -> untyped
28
+ def []: (*untyped) -> untyped
29
+ def []=: (*untyped) -> untyped
30
+ end
31
+
32
+ class Int32 < NArray
33
+ def *: (untyped) -> untyped
34
+ def +: (untyped) -> untyped
35
+ def []: (*untyped) -> untyped
36
+ def []=: (*untyped) -> untyped
37
+ def seq: (*untyped) -> untyped
38
+ end
39
+
40
+ class Int64 < NArray
41
+ def *: (untyped) -> untyped
42
+ def +: (untyped) -> untyped
43
+ def []: (*untyped) -> untyped
44
+ def []=: (*untyped) -> untyped
45
+ end
46
+
47
+ class UInt8 < NArray
48
+ def *: (untyped) -> untyped
49
+ def +: (untyped) -> untyped
50
+ def []: (*untyped) -> untyped
51
+ def []=: (*untyped) -> untyped
52
+ end
53
+
54
+ class UInt16 < NArray
55
+ def *: (untyped) -> untyped
56
+ def +: (untyped) -> untyped
57
+ def []: (*untyped) -> untyped
58
+ def []=: (*untyped) -> untyped
59
+ end
60
+
61
+ class UInt32 < NArray
62
+ def *: (untyped) -> untyped
63
+ def +: (untyped) -> untyped
64
+ def []: (*untyped) -> untyped
65
+ def []=: (*untyped) -> untyped
66
+ end
67
+
68
+ class UInt64 < NArray
69
+ def *: (untyped) -> untyped
70
+ def +: (untyped) -> untyped
71
+ def []: (*untyped) -> untyped
72
+ def []=: (*untyped) -> untyped
73
+ end
74
+
75
+ class SFloat < NArray
76
+ def sum: (*untyped) -> untyped
77
+ def *: (untyped) -> untyped
78
+ def +: (untyped) -> untyped
79
+ def []: (*untyped) -> untyped
80
+ def []=: (*untyped) -> untyped
81
+ end
82
+
83
+ class DFloat < NArray
84
+ def sum: (*untyped) -> untyped
85
+ def *: (untyped) -> untyped
86
+ def +: (untyped) -> untyped
87
+ def []: (*untyped) -> untyped
88
+ def []=: (*untyped) -> untyped
89
+ end
90
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-03 00:00:00.000000000 Z
11
+ date: 2021-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -36,6 +36,7 @@ extensions:
36
36
  - ext/magro/extconf.rb
37
37
  extra_rdoc_files: []
38
38
  files:
39
+ - ".clang-format"
39
40
  - ".coveralls.yml"
40
41
  - ".github/workflows/build.yml"
41
42
  - ".github/workflows/coverage.yml"
@@ -47,6 +48,7 @@ files:
47
48
  - LICENSE.txt
48
49
  - README.md
49
50
  - Rakefile
51
+ - Steepfile
50
52
  - bin/console
51
53
  - bin/setup
52
54
  - ext/magro/extconf.rb
@@ -60,6 +62,11 @@ files:
60
62
  - lib/magro/transform.rb
61
63
  - lib/magro/version.rb
62
64
  - magro.gemspec
65
+ - sig/magro.rbs
66
+ - sig/magro/filter.rbs
67
+ - sig/magro/io.rbs
68
+ - sig/magro/transform.rbs
69
+ - sig/patch.rbs
63
70
  homepage: https://github.com/yoshoku/magro
64
71
  licenses:
65
72
  - BSD-3-Clause
@@ -68,7 +75,7 @@ metadata:
68
75
  source_code_uri: https://github.com/yoshoku/magro
69
76
  changelog_uri: https://github.com/yoshoku/magro/blob/main/CHANGELOG.md
70
77
  documentation_uri: https://yoshoku.github.io/magro/doc/
71
- post_install_message:
78
+ post_install_message:
72
79
  rdoc_options: []
73
80
  require_paths:
74
81
  - lib
@@ -83,8 +90,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
90
  - !ruby/object:Gem::Version
84
91
  version: '0'
85
92
  requirements: []
86
- rubygems_version: 3.2.7
87
- signing_key:
93
+ rubygems_version: 3.1.6
94
+ signing_key:
88
95
  specification_version: 4
89
96
  summary: Magro is a minimal image processing library for Ruby.
90
97
  test_files: []