Top Level Namespace
Defined Under Namespace
Modules: AutoloadPatch, Enumerable, Math, NVector Classes: Array, DataTypeError, NMGCHolder, NMatrix, NotInvertibleError, Object, ShapeError, StorageTypeError, String
Constant Summary collapse
- N =
This constant is intended as a simple constructor for NMatrix meant for experimenting.
Examples:
a = N[ 1,2,3,4 ] => 1 2 3 4 a = N[ 1,2,3,4, :int32 ] => 1 2 3 4 a = N[ [1,2,3], [3,4,5] ] => 1 2 3 3 4 5 a = N[ 3,6,9 ].transpose => 3 6 9
NMatrix
Instance Method Summary collapse
-
#create_conf_h(file) ⇒ Object
Function derived from NArray’s extconf.rb.
-
#find_newer_gplusplus ⇒ Object
:nodoc:.
- #gplusplus_version ⇒ Object
-
#jruby? ⇒ Boolean
Detect java.
Instance Method Details
#create_conf_h(file) ⇒ Object
Function derived from NArray’s extconf.rb.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/nmatrix/mkmf.rb', line 8 def create_conf_h(file) #:nodoc: print "creating #{file}\n" File.open(file, 'w') do |hfile| header_guard = file.upcase.sub(/\s|\./, '_') hfile.puts "#ifndef #{header_guard}" hfile.puts "#define #{header_guard}" hfile.puts # FIXME: Find a better way to do this: hfile.puts "#define RUBY_2 1" if RUBY_VERSION >= '2.0' for line in $defs line =~ /^-D(.*)/ hfile.printf "#define %s 1\n", $1 end hfile.puts hfile.puts "#endif" end end |
#find_newer_gplusplus ⇒ Object
:nodoc:
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/nmatrix/mkmf.rb', line 30 def find_newer_gplusplus #:nodoc: print "checking for apparent GNU g++ binary with C++0x/C++11 support... " [9,8,7,6,5,4,3].each do |minor| ver = "4.#{minor}" gpp = "g++-#{ver}" result = `which #{gpp}` next if result.empty? CONFIG['CXX'] = gpp puts ver return CONFIG['CXX'] end false end |
#gplusplus_version ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/nmatrix/mkmf.rb', line 44 def gplusplus_version cxxvar = proc { |n| `#{CONFIG['CXX']} -E -dM - <#{File::NULL} | grep #{n}`.chomp.split(' ')[2] } major = cxxvar.call('__GNUC__') minor = cxxvar.call('__GNUC_MINOR__') patch = cxxvar.call('__GNUC_PATCHLEVEL__') raise("unable to determine g++ version (match to get version was nil)") if major.nil? || minor.nil? || patch.nil? "#{major}.#{minor}.#{patch}" end |
#jruby? ⇒ Boolean
Detect java
35 36 37 |
# File 'lib/nmatrix/nmatrix.rb', line 35 def jruby? /java/ === RUBY_PLATFORM end |