Module: FFTW3

Defined in:
lib/fftw3.rb,
lib/fftw3/plan.rb,
lib/fftw3/error.rb,
lib/fftw3/iodim.rb,
lib/fftw3/utils.rb,
lib/fftw3/wisdom.rb,
lib/fftw3/threads.rb,
lib/fftw3/version.rb,
lib/fftw3/ffi/quad.rb,
lib/fftw3/constants.rb,
lib/fftw3/ffi/float.rb,
lib/fftw3/ffi/types.rb,
lib/fftw3/ffi/double.rb,
lib/fftw3/aligned_memory.rb,
lib/fftw3/ffi/long_double.rb,
lib/fftw3/ffi/library_loader.rb,
lib/fftw3/ffi/binding_template.rb

Defined Under Namespace

Modules: Error, FFI, Threads, Utils, Wisdom Classes: AlignedMemory, IODim, IODim64, Plan

Constant Summary collapse

VERSION =
"0.1.0"
NO_TIMELIMIT =
-1.0
MEASURE =

Planner flags

0
DESTROY_INPUT =
1 << 0
UNALIGNED =
1 << 1
CONSERVE_MEMORY =
1 << 2
EXHAUSTIVE =
1 << 3
PRESERVE_INPUT =
1 << 4
PATIENT =
1 << 5
ESTIMATE =
1 << 6
ESTIMATE_PATIENT =
1 << 7
BELIEVE_PCOST =
1 << 8
NO_DFT_R2HC =
1 << 9
NO_NONTHREADED =
1 << 10
NO_BUFFERING =
1 << 11
NO_INDIRECT_OP =
1 << 12
ALLOW_LARGE_GENERIC =
1 << 13
NO_RANK_SPLITS =
1 << 14
NO_VRANK_SPLITS =
1 << 15
NO_VRECURSE =
1 << 16
NO_SIMD =
1 << 17
NO_SLOW =
1 << 18
NO_FIXED_RADIX_LARGE_N =
1 << 19
ALLOW_PRUNING =
1 << 20
WISDOM_ONLY =
1 << 21
FORWARD =

Direction

-1
BACKWARD =
1
R2HC =

R2R kinds

0
HC2R =
1
DHT =
2
REDFT00 =
3
REDFT01 =
4
REDFT10 =
5
REDFT11 =
6
RODFT00 =
7
RODFT01 =
8
RODFT10 =
9
RODFT11 =
10

Class Method Summary collapse

Class Method Details

.available_precisionsObject



37
38
39
40
41
42
43
44
# File 'lib/fftw3.rb', line 37

def available_precisions
  precisions = []
  precisions << :double if double_available?
  precisions << :float if float_available?
  precisions << :long_double if long_double_available?
  precisions << :quad if quad_available?
  precisions
end

.codelet_optimizations(precision: :double) ⇒ Object



54
55
56
# File 'lib/fftw3.rb', line 54

def codelet_optimizations(precision: :double)
  FFTW3::FFI.string_constant(precision, :codelet_optim)
end

.compiler(precision: :double) ⇒ Object



50
51
52
# File 'lib/fftw3.rb', line 50

def compiler(precision: :double)
  FFTW3::FFI.string_constant(precision, :cc)
end

.double_available?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/fftw3.rb', line 21

def double_available?
  FFI::Double.available?
end

.float_available?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/fftw3.rb', line 25

def float_available?
  FFI::Float.available?
end

.long_double_available?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/fftw3.rb', line 29

def long_double_available?
  FFI::LongDouble.available?
end

.quad_available?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/fftw3.rb', line 33

def quad_available?
  FFI::Quad.available?
end

.version(precision: :double) ⇒ Object



46
47
48
# File 'lib/fftw3.rb', line 46

def version(precision: :double)
  FFTW3::FFI.string_constant(precision, :version)
end