numo-narray 0.9.0.1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/README.md +47 -0
- data/Rakefile +41 -0
- data/ext/numo/narray/SFMT-params.h +97 -0
- data/ext/numo/narray/SFMT-params19937.h +46 -0
- data/ext/numo/narray/SFMT.c +620 -0
- data/ext/numo/narray/SFMT.h +157 -0
- data/ext/numo/narray/array.c +525 -0
- data/ext/numo/narray/data.c +901 -0
- data/ext/numo/narray/depend.erb +33 -0
- data/ext/numo/narray/extconf.rb +117 -0
- data/ext/numo/narray/gen/bit.erb.c +811 -0
- data/ext/numo/narray/gen/cogen.rb +18 -0
- data/ext/numo/narray/gen/def/dcomplex.rb +32 -0
- data/ext/numo/narray/gen/def/dfloat.rb +30 -0
- data/ext/numo/narray/gen/def/int16.rb +29 -0
- data/ext/numo/narray/gen/def/int32.rb +29 -0
- data/ext/numo/narray/gen/def/int64.rb +29 -0
- data/ext/numo/narray/gen/def/int8.rb +29 -0
- data/ext/numo/narray/gen/def/robject.rb +30 -0
- data/ext/numo/narray/gen/def/scomplex.rb +32 -0
- data/ext/numo/narray/gen/def/sfloat.rb +30 -0
- data/ext/numo/narray/gen/def/uint16.rb +29 -0
- data/ext/numo/narray/gen/def/uint32.rb +29 -0
- data/ext/numo/narray/gen/def/uint64.rb +29 -0
- data/ext/numo/narray/gen/def/uint8.rb +29 -0
- data/ext/numo/narray/gen/dtype.erb.c +328 -0
- data/ext/numo/narray/gen/tmpl/accum.c +36 -0
- data/ext/numo/narray/gen/tmpl/accum_binary.c +75 -0
- data/ext/numo/narray/gen/tmpl/accum_index.c +58 -0
- data/ext/numo/narray/gen/tmpl/allocate.c +35 -0
- data/ext/numo/narray/gen/tmpl/aref.c +51 -0
- data/ext/numo/narray/gen/tmpl/aset.c +61 -0
- data/ext/numo/narray/gen/tmpl/binary.c +53 -0
- data/ext/numo/narray/gen/tmpl/binary2.c +55 -0
- data/ext/numo/narray/gen/tmpl/binary_s.c +34 -0
- data/ext/numo/narray/gen/tmpl/bit_binary.c +94 -0
- data/ext/numo/narray/gen/tmpl/bit_count.c +82 -0
- data/ext/numo/narray/gen/tmpl/bit_unary.c +77 -0
- data/ext/numo/narray/gen/tmpl/cast.c +37 -0
- data/ext/numo/narray/gen/tmpl/cast_array.c +79 -0
- data/ext/numo/narray/gen/tmpl/cast_numeric.c +22 -0
- data/ext/numo/narray/gen/tmpl/coerce_cast.c +8 -0
- data/ext/numo/narray/gen/tmpl/cond_binary.c +51 -0
- data/ext/numo/narray/gen/tmpl/cond_unary.c +45 -0
- data/ext/numo/narray/gen/tmpl/cum.c +42 -0
- data/ext/numo/narray/gen/tmpl/each.c +43 -0
- data/ext/numo/narray/gen/tmpl/each_with_index.c +64 -0
- data/ext/numo/narray/gen/tmpl/extract.c +23 -0
- data/ext/numo/narray/gen/tmpl/eye.c +91 -0
- data/ext/numo/narray/gen/tmpl/fill.c +38 -0
- data/ext/numo/narray/gen/tmpl/format.c +60 -0
- data/ext/numo/narray/gen/tmpl/format_to_a.c +47 -0
- data/ext/numo/narray/gen/tmpl/head.c +25 -0
- data/ext/numo/narray/gen/tmpl/inspect.c +16 -0
- data/ext/numo/narray/gen/tmpl/map_with_index.c +94 -0
- data/ext/numo/narray/gen/tmpl/median.c +44 -0
- data/ext/numo/narray/gen/tmpl/minmax.c +47 -0
- data/ext/numo/narray/gen/tmpl/poly.c +49 -0
- data/ext/numo/narray/gen/tmpl/pow.c +74 -0
- data/ext/numo/narray/gen/tmpl/powint.c +17 -0
- data/ext/numo/narray/gen/tmpl/qsort.c +149 -0
- data/ext/numo/narray/gen/tmpl/rand.c +33 -0
- data/ext/numo/narray/gen/tmpl/rand_norm.c +46 -0
- data/ext/numo/narray/gen/tmpl/robj_allocate.c +32 -0
- data/ext/numo/narray/gen/tmpl/seq.c +61 -0
- data/ext/numo/narray/gen/tmpl/set2.c +56 -0
- data/ext/numo/narray/gen/tmpl/sort.c +36 -0
- data/ext/numo/narray/gen/tmpl/sort_index.c +86 -0
- data/ext/numo/narray/gen/tmpl/store.c +31 -0
- data/ext/numo/narray/gen/tmpl/store_array.c +5 -0
- data/ext/numo/narray/gen/tmpl/store_from.c +53 -0
- data/ext/numo/narray/gen/tmpl/store_numeric.c +22 -0
- data/ext/numo/narray/gen/tmpl/to_a.c +41 -0
- data/ext/numo/narray/gen/tmpl/unary.c +58 -0
- data/ext/numo/narray/gen/tmpl/unary2.c +58 -0
- data/ext/numo/narray/gen/tmpl/unary_s.c +57 -0
- data/ext/numo/narray/index.c +822 -0
- data/ext/numo/narray/kwarg.c +79 -0
- data/ext/numo/narray/math.c +140 -0
- data/ext/numo/narray/narray.c +1539 -0
- data/ext/numo/narray/ndloop.c +1928 -0
- data/ext/numo/narray/numo/compat.h +23 -0
- data/ext/numo/narray/numo/intern.h +112 -0
- data/ext/numo/narray/numo/narray.h +411 -0
- data/ext/numo/narray/numo/ndloop.h +99 -0
- data/ext/numo/narray/numo/template.h +140 -0
- data/ext/numo/narray/numo/types/bit.h +19 -0
- data/ext/numo/narray/numo/types/complex.h +410 -0
- data/ext/numo/narray/numo/types/complex_macro.h +205 -0
- data/ext/numo/narray/numo/types/dcomplex.h +11 -0
- data/ext/numo/narray/numo/types/dfloat.h +12 -0
- data/ext/numo/narray/numo/types/float_def.h +34 -0
- data/ext/numo/narray/numo/types/float_macro.h +277 -0
- data/ext/numo/narray/numo/types/int16.h +12 -0
- data/ext/numo/narray/numo/types/int32.h +12 -0
- data/ext/numo/narray/numo/types/int64.h +12 -0
- data/ext/numo/narray/numo/types/int8.h +12 -0
- data/ext/numo/narray/numo/types/int_macro.h +34 -0
- data/ext/numo/narray/numo/types/robj_macro.h +218 -0
- data/ext/numo/narray/numo/types/robject.h +21 -0
- data/ext/numo/narray/numo/types/scomplex.h +11 -0
- data/ext/numo/narray/numo/types/sfloat.h +13 -0
- data/ext/numo/narray/numo/types/uint16.h +12 -0
- data/ext/numo/narray/numo/types/uint32.h +12 -0
- data/ext/numo/narray/numo/types/uint64.h +12 -0
- data/ext/numo/narray/numo/types/uint8.h +12 -0
- data/ext/numo/narray/numo/types/uint_macro.h +31 -0
- data/ext/numo/narray/numo/types/xint_macro.h +133 -0
- data/ext/numo/narray/rand.c +87 -0
- data/ext/numo/narray/step.c +506 -0
- data/ext/numo/narray/struct.c +872 -0
- data/lib/2.1/numo/narray.so +0 -0
- data/lib/2.2/numo/narray.so +0 -0
- data/lib/2.3/numo/narray.so +0 -0
- data/lib/erbpp/line_number.rb +126 -0
- data/lib/erbpp/narray_def.rb +338 -0
- data/lib/erbpp.rb +286 -0
- data/lib/numo/narray.rb +6 -0
- data/numo-narray.gemspec +35 -0
- data/spec/bit_spec.rb +93 -0
- data/spec/narray_spec.rb +249 -0
- metadata +238 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: afa2563cf5a6d4f756025e0b51536bf83c2a3fd7
|
4
|
+
data.tar.gz: eab5d7f761a567782e29e97420aa56c3eb142bf4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 080bb8d44b7e906dd17588a2e87f2f4935b43426bb87af47c721904ef8ee0f3177247bd175878d0db85c5cb99a579bbd6244a1de0aad9d5fa71c1a2e8d27701e
|
7
|
+
data.tar.gz: d9e84f080188fa0da98a38dd61fd5af4e184b7530d77a087ca66ff2a15c16e43b354de0f9c721321c6ea6ae75dec0e5c34dca190e8bcd9b09ab8ad3148577849
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Numo::NArray - New NArray class library for Ruby/Numo (NUmerical MOdule)
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/ruby-numo/narray.svg?branch=master)](https://travis-ci.org/ruby-numo/narray)
|
4
|
+
|
5
|
+
under development
|
6
|
+
|
7
|
+
## Related Projects
|
8
|
+
* [Numo::Linalg](https://github.com/ruby-numo/linalg): Linear Algebra library with [LAPACK](http://www.netlib.org/lapack/).
|
9
|
+
* [Numo::GSL](https://github.com/ruby-numo/gsl): Ruby interface for [GSL (GNU Scientific Library)](http://www.gnu.org/software/gsl/).
|
10
|
+
* [Numo::FFTE](https://github.com/ruby-numo/ffte): Ruby interface for [FFTE (A Fast Fourier Transform library with radix-2,3,5)](http://www.ffte.jp/).
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
### Ubuntu, Debian
|
14
|
+
```shell
|
15
|
+
apt install -y git ruby gcc ruby-dev rake make
|
16
|
+
git clone git://github.com/ruby-numo/narray
|
17
|
+
cd narray
|
18
|
+
gem build numo-narray.gemspec
|
19
|
+
gem install numo-narray-0.9.0.1.gem
|
20
|
+
```
|
21
|
+
|
22
|
+
## Quick start
|
23
|
+
An example
|
24
|
+
```ruby
|
25
|
+
[1] pry(main)> require "numo/narray"
|
26
|
+
=> true
|
27
|
+
[2] pry(main)> a = Numo::DFloat.new(3,5).seq
|
28
|
+
=> Numo::DFloat#shape=[3,5]
|
29
|
+
[[0, 1, 2, 3, 4],
|
30
|
+
[5, 6, 7, 8, 9],
|
31
|
+
[10, 11, 12, 13, 14]]
|
32
|
+
[3] pry(main)> a.shape
|
33
|
+
=> [3, 5]
|
34
|
+
[4] pry(main)> a.ndim
|
35
|
+
=> 2
|
36
|
+
[5] pry(main)> a.class
|
37
|
+
=> Numo::DFloat
|
38
|
+
[6] pry(main)> a.size
|
39
|
+
=> 15
|
40
|
+
```
|
41
|
+
For more examples, check out this [narray version of 100 numpy exercises](https://github.com/ruby-numo/narray/wiki/100-narray-exercises).
|
42
|
+
|
43
|
+
## numo-array status compared to numpy
|
44
|
+
|
45
|
+
https://github.com/ruby-numo/narray/wiki/Numo-vs-numpy
|
46
|
+
|
47
|
+
## [NArray Tentative API Document](http://ruby-numo.github.io/narray/narray/frames.html)
|
data/Rakefile
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/extensiontask"
|
3
|
+
require "rake_compiler_dock"
|
4
|
+
require "shellwords"
|
5
|
+
|
6
|
+
spec = Bundler::GemHelper.gemspec
|
7
|
+
|
8
|
+
Rake::ExtensionTask.new("numo/narray", spec) do |ext|
|
9
|
+
ext.cross_compile = true
|
10
|
+
ext.cross_platform = ["x86-mingw32", "x64-mingw32"]
|
11
|
+
end
|
12
|
+
|
13
|
+
namespace :build do
|
14
|
+
pkg_dir = "pkg"
|
15
|
+
directory pkg_dir
|
16
|
+
|
17
|
+
desc "Build gems for Windows"
|
18
|
+
task :windows => pkg_dir do
|
19
|
+
ruby_versions = "2.1.6:2.2.2:2.3.0"
|
20
|
+
|
21
|
+
build_dir = "tmp/windows"
|
22
|
+
rm_rf build_dir
|
23
|
+
mkdir_p build_dir
|
24
|
+
|
25
|
+
commands = [
|
26
|
+
["git", "clone", "file://#{Dir.pwd}/.git", build_dir],
|
27
|
+
["cd", build_dir],
|
28
|
+
["bundle"],
|
29
|
+
["rake", "cross", "native", "gem", "RUBY_CC_VERSION=#{ruby_versions}"],
|
30
|
+
]
|
31
|
+
raw_commands = commands.collect do |command|
|
32
|
+
Shellwords.join(command)
|
33
|
+
end
|
34
|
+
raw_command_line = raw_commands.join(" && ")
|
35
|
+
|
36
|
+
RakeCompilerDock.sh(raw_command_line)
|
37
|
+
|
38
|
+
cp(Dir.glob("#{build_dir}/#{pkg_dir}/*.gem"),
|
39
|
+
"#{pkg_dir}/")
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
#ifndef SFMT_PARAMS_H
|
2
|
+
#define SFMT_PARAMS_H
|
3
|
+
|
4
|
+
#if !defined(MEXP)
|
5
|
+
//#ifdef __GNUC__
|
6
|
+
// #warning "MEXP is not defined. I assume MEXP is 19937."
|
7
|
+
//#endif
|
8
|
+
#define MEXP 19937
|
9
|
+
#endif
|
10
|
+
/*-----------------
|
11
|
+
BASIC DEFINITIONS
|
12
|
+
-----------------*/
|
13
|
+
/** Mersenne Exponent. The period of the sequence
|
14
|
+
* is a multiple of 2^MEXP-1.
|
15
|
+
* #define MEXP 19937 */
|
16
|
+
/** SFMT generator has an internal state array of 128-bit integers,
|
17
|
+
* and N is its size. */
|
18
|
+
#define N (MEXP / 128 + 1)
|
19
|
+
/** N32 is the size of internal state array when regarded as an array
|
20
|
+
* of 32-bit integers.*/
|
21
|
+
#define N32 (N * 4)
|
22
|
+
/** N64 is the size of internal state array when regarded as an array
|
23
|
+
* of 64-bit integers.*/
|
24
|
+
#define N64 (N * 2)
|
25
|
+
|
26
|
+
/*----------------------
|
27
|
+
the parameters of SFMT
|
28
|
+
following definitions are in paramsXXXX.h file.
|
29
|
+
----------------------*/
|
30
|
+
/** the pick up position of the array.
|
31
|
+
#define POS1 122
|
32
|
+
*/
|
33
|
+
|
34
|
+
/** the parameter of shift left as four 32-bit registers.
|
35
|
+
#define SL1 18
|
36
|
+
*/
|
37
|
+
|
38
|
+
/** the parameter of shift left as one 128-bit register.
|
39
|
+
* The 128-bit integer is shifted by (SL2 * 8) bits.
|
40
|
+
#define SL2 1
|
41
|
+
*/
|
42
|
+
|
43
|
+
/** the parameter of shift right as four 32-bit registers.
|
44
|
+
#define SR1 11
|
45
|
+
*/
|
46
|
+
|
47
|
+
/** the parameter of shift right as one 128-bit register.
|
48
|
+
* The 128-bit integer is shifted by (SL2 * 8) bits.
|
49
|
+
#define SR2 1
|
50
|
+
*/
|
51
|
+
|
52
|
+
/** A bitmask, used in the recursion. These parameters are introduced
|
53
|
+
* to break symmetry of SIMD.
|
54
|
+
#define MSK1 0xdfffffefU
|
55
|
+
#define MSK2 0xddfecb7fU
|
56
|
+
#define MSK3 0xbffaffffU
|
57
|
+
#define MSK4 0xbffffff6U
|
58
|
+
*/
|
59
|
+
|
60
|
+
/** These definitions are part of a 128-bit period certification vector.
|
61
|
+
#define PARITY1 0x00000001U
|
62
|
+
#define PARITY2 0x00000000U
|
63
|
+
#define PARITY3 0x00000000U
|
64
|
+
#define PARITY4 0xc98e126aU
|
65
|
+
*/
|
66
|
+
|
67
|
+
#if MEXP == 607
|
68
|
+
#include "SFMT-params607.h"
|
69
|
+
#elif MEXP == 1279
|
70
|
+
#include "SFMT-params1279.h"
|
71
|
+
#elif MEXP == 2281
|
72
|
+
#include "SFMT-params2281.h"
|
73
|
+
#elif MEXP == 4253
|
74
|
+
#include "SFMT-params4253.h"
|
75
|
+
#elif MEXP == 11213
|
76
|
+
#include "SFMT-params11213.h"
|
77
|
+
#elif MEXP == 19937
|
78
|
+
#include "SFMT-params19937.h"
|
79
|
+
#elif MEXP == 44497
|
80
|
+
#include "SFMT-params44497.h"
|
81
|
+
#elif MEXP == 86243
|
82
|
+
#include "SFMT-params86243.h"
|
83
|
+
#elif MEXP == 132049
|
84
|
+
#include "SFMT-params132049.h"
|
85
|
+
#elif MEXP == 216091
|
86
|
+
#include "SFMT-params216091.h"
|
87
|
+
#else
|
88
|
+
#ifdef __GNUC__
|
89
|
+
#error "MEXP is not valid."
|
90
|
+
#undef MEXP
|
91
|
+
#else
|
92
|
+
#undef MEXP
|
93
|
+
#endif
|
94
|
+
|
95
|
+
#endif
|
96
|
+
|
97
|
+
#endif /* SFMT_PARAMS_H */
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#ifndef SFMT_PARAMS19937_H
|
2
|
+
#define SFMT_PARAMS19937_H
|
3
|
+
|
4
|
+
#define POS1 122
|
5
|
+
#define SL1 18
|
6
|
+
#define SL2 1
|
7
|
+
#define SR1 11
|
8
|
+
#define SR2 1
|
9
|
+
#define MSK1 0xdfffffefU
|
10
|
+
#define MSK2 0xddfecb7fU
|
11
|
+
#define MSK3 0xbffaffffU
|
12
|
+
#define MSK4 0xbffffff6U
|
13
|
+
#define PARITY1 0x00000001U
|
14
|
+
#define PARITY2 0x00000000U
|
15
|
+
#define PARITY3 0x00000000U
|
16
|
+
#define PARITY4 0x13c9e684U
|
17
|
+
|
18
|
+
|
19
|
+
/* PARAMETERS FOR ALTIVEC */
|
20
|
+
#if defined(__APPLE__) /* For OSX */
|
21
|
+
#define ALTI_SL1 (vector unsigned int)(SL1, SL1, SL1, SL1)
|
22
|
+
#define ALTI_SR1 (vector unsigned int)(SR1, SR1, SR1, SR1)
|
23
|
+
#define ALTI_MSK (vector unsigned int)(MSK1, MSK2, MSK3, MSK4)
|
24
|
+
#define ALTI_MSK64 \
|
25
|
+
(vector unsigned int)(MSK2, MSK1, MSK4, MSK3)
|
26
|
+
#define ALTI_SL2_PERM \
|
27
|
+
(vector unsigned char)(1,2,3,23,5,6,7,0,9,10,11,4,13,14,15,8)
|
28
|
+
#define ALTI_SL2_PERM64 \
|
29
|
+
(vector unsigned char)(1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0)
|
30
|
+
#define ALTI_SR2_PERM \
|
31
|
+
(vector unsigned char)(7,0,1,2,11,4,5,6,15,8,9,10,17,12,13,14)
|
32
|
+
#define ALTI_SR2_PERM64 \
|
33
|
+
(vector unsigned char)(15,0,1,2,3,4,5,6,17,8,9,10,11,12,13,14)
|
34
|
+
#else /* For OTHER OSs(Linux?) */
|
35
|
+
#define ALTI_SL1 {SL1, SL1, SL1, SL1}
|
36
|
+
#define ALTI_SR1 {SR1, SR1, SR1, SR1}
|
37
|
+
#define ALTI_MSK {MSK1, MSK2, MSK3, MSK4}
|
38
|
+
#define ALTI_MSK64 {MSK2, MSK1, MSK4, MSK3}
|
39
|
+
#define ALTI_SL2_PERM {1,2,3,23,5,6,7,0,9,10,11,4,13,14,15,8}
|
40
|
+
#define ALTI_SL2_PERM64 {1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0}
|
41
|
+
#define ALTI_SR2_PERM {7,0,1,2,11,4,5,6,15,8,9,10,17,12,13,14}
|
42
|
+
#define ALTI_SR2_PERM64 {15,0,1,2,3,4,5,6,17,8,9,10,11,12,13,14}
|
43
|
+
#endif /* For OSX */
|
44
|
+
#define IDSTR "SFMT-19937:122-18-1-11-1:dfffffef-ddfecb7f-bffaffff-bffffff6"
|
45
|
+
|
46
|
+
#endif /* SFMT_PARAMS19937_H */
|