# # = GSL::Vector::Complex # # == {}[link:index.html"name="1] Class methods # --- # * GSL::Vector::Complex.alloc(size) # * GSL::Vector::Complex.alloc(re, im) # * GSL::Vector::Complex.alloc(z0, z1, z2, ...) # * GSL::Vector::Complex.alloc( ... ) # * GSL::Vector::Complex[ ... ] # # Constructors. # # 1. With two (real) vectors: # >> re = Vector[0..3] # >> im = Vector[5..8] # >> z = Vector::Complex[re, im] # [ [0.000e+00 5.000e+00] [1.000e+00 6.000e+00] [2.000e+00 7.000e+00] [3.000e+00 8.000e+00] ] # # 1. With arrays # >> z = Vector::Complex.alloc([0, 1], [2, 5], [-3, 4]) # [ [0.000e+00 1.000e+00] [2.000e+00 5.000e+00] [-3.000e+00 4.000e+00] ] # # --- # * GSL::Vector::Complex.calloc(n) # # Creates a complex vector of length n and initializes all # the elements of the vector to zero. # # == {}[link:index.html"name="2] Instance methods # === {}[link:index.html"name="2.1] Accessing vector elements # --- # * GSL::Vector::Complex#get(args) # * GSL::Vector::Complex#[args] # # Returns elements(s) of the complex vector self if args is a # single Fixnum, a single Array of Fixnums, or a single GSL::Permutation (or # GSL::Index). For all other args, the parameters are treated as # with Vector#subvector and a Vector::View is returned. # # Example: # >> z # [ [0.000e+00 1.000e+00] [2.000e+00 5.000e+00] [-3.000e+00 4.000e+00] ] # => # # >> z[1] # => GSL::Complex # [ 2.000000 5.000000 ] # >> z[-1] # => GSL::Complex # [ -3.000000 4.000000 ] # >> z[0, 2] # [ [0.000e+00 1.000e+00] [-3.000e+00 4.000e+00] ] # => # # # --- # * GSL::Vector::Complex#set(args, val) # * GSL::Vector::Complex#[args]=val # # If args is empty, behaves as #set_all and val must be a # [re,im] Array, Float, Integer, or # GSL::Complex. # # If args is a single Fixnum, i, sets the i-th # element of the vector self to val, which must be a # [re,im] Array, Float, Integer, or # GSL::Complex. # # All other args specify a subvector (as with #subvector) whose # elements are assigned from val. In this case, val can be an # Array, Range, GSL::Vector::Complex, or one of the classes # listed in the previous cases. # # NOTE: GSL does not provide a vector copy function that properly copies data # across overlapping memory regions, so watch out if assigning to part of a # Vector from another part of itself (see #set example of # {GSL::Vector}[link:files/rdoc/vector_rdoc.html]). # # === {}[link:index.html"name="2.2] Initializing vector elements # --- # * GSL::Vector::Complex#set_all(z) # # Sets all the elements of the complex vector self to the complex z. # --- # * GSL::Vector::Complex#set_zero # # Sets all the elements of the vector self to zero. # --- # * GSL::Vector::Complex#set_real(x) # * GSL::Vector::Complex#real=(x) # * GSL::Vector::Complex#re=(x) # # Sets the real component of all elements of the vector self to # x. Currently, x must be a scalar, but a future Ruby GSL # version could accept a GSL::Vector. # --- # * GSL::Vector::Complex#set_imag(x) # * GSL::Vector::Complex#imag=(x) # * GSL::Vector::Complex#im=(x) # # Sets the imaginary component of all elements of the vector self to # x. Currently, x must be a scalar, but a future Ruby GSL # version could accept a GSL::Vector. # # === {}[link:index.html"name="2.3] Vector Properties # --- # * GSL::Vector::Complex#size # * GSL::Vector::Complex#len # * GSL::Vector::Complex#length # # Return the vector length. # # --- # * GSL::Vector::Complex#stride # # Return the vector stride. # # === {}[link:index.html"name="2.4] Iterators # --- # * GSL::Vector::Complex#each # * GSL::Vector::Complex#each_index # * GSL::Vector::Complex#collect # * GSL::Vector::Complex#map # * GSL::Vector::Complex#collect! # * GSL::Vector::Complex#map! # # # === {}[link:index.html"name="2.5] Reordering Elements # GSL::Vector::Complex provides four methods for shifting the frequency # domain data between FFT order, shown in the table in the (()), and natural order, which has the # most negative freqeuncy component first, the zero frequency component in the # middle, and the most positive frequency component last. For more information # on Ruby/GSL and FFTs, see {Fast Fourier Transforms}[link:files/rdoc/fft_rdoc.html]. # # --- # * GSL::Vector::Complex#fftshift # * GSL::Vector::Complex#fftshift! # # Shifts the data of self from FFT order to natural order. The # #fftshift method leaves self unmodified and returns a new # GSL::Vector::Complex object containing the shifted data. The # #fftshift! method modifies self in-place and returns # self. Note that #fftshift and #ifftshift are equivalent # for even lengths, but not for odd lengths. # # --- # * GSL::Vector::Complex#ifftshift # * GSL::Vector::Complex#ifftshift! # # Shifts the data of self from natural order to FFT order. The # #ifftshift method leaves self unmodified and returns a new # GSL::Vector::Complex object containing the shifted data. The # #ifftshift! method modifies self in-place and returns # self. Note that #fftshift and #ifftshift are equivalent # for even lengths, but not for odd lengths. # # === {}[link:index.html"name="2.6] Arithmetic # --- # * GSL::Vector::Complex#+(other) # * GSL::Vector::Complex#-(other) # * GSL::Vector::Complex#*(other) # * GSL::Vector::Complex#/(other) # * GSL::Vector::Complex#add(other) # * GSL::Vector::Complex#sub(other) # * GSL::Vector::Complex#mul(other) # * GSL::Vector::Complex#div(other) # # Returns a new GSL::Vector::Complex instance containing the result of # the appropriate arithmetic operation on self and other. The # inputs are unchanged. The other parameter may be a scalar, # {GSL::Vector}[link:files/rdoc/vector_rdoc.html], or GSL::Vector::Complex. # # --- # * GSL::Vector::Complex#+=(other) # * GSL::Vector::Complex#-=(other) # * GSL::Vector::Complex#*=(other) # * GSL::Vector::Complex#/=(other) # * GSL::Vector::Complex#add!(other) # * GSL::Vector::Complex#sub!(other) # * GSL::Vector::Complex#mul!(other) # * GSL::Vector::Complex#div!(other) # # Modifies self in place to contain the result of the appropriate # arithmetic operation on self and other. The other # parameter may be a scalar, {GSL::Vector}[link:files/rdoc/vector_rdoc.html], or # GSL::Vector::Complex. # # === {}[link:index.html"name="2.7] Reading and writing vectors # --- # * GSL::Vector::Complex#fwite(io) # * GSL::Vector::Complex#fread(io) # * GSL::Vector::Complex#fprintf(io, format) # * GSL::Vector::Complex#fscanf(io) # # # === {}[link:index.html"name="2.8] Functions # --- # * GSL::Vector::Complex#conj # * GSL::Vector::Complex#conjugate # # Returns a new GSL::Vector::Complex that is the complex conjugate of # self. # # --- # * GSL::Vector::Complex#conj! # * GSL::Vector::Complex#conjugate! # # Conjugates self in-place and returns self. # # --- # * GSL::Vector::Complex#arg # * GSL::Vector::Complex#angle # * GSL::Vector::Complex#phase # # Calculates the argument (i.e. phase angle in radians) of each of the # complex elements of the vector self and returns a real vector. # # --- # * GSL::Vector::Complex#abs2 # # Calculates the squared magnitude of the complex elements of the vector # self and returns a real vector. # # --- # * GSL::Vector::Complex#abs # * GSL::Vector::Complex#amp # # Calculates the magnitude of the complex elements of the vector self # and returns a real vector. # # --- # * GSL::Vector::Complex#logabs # # Calculates the natural logarithm of the magnitude of the complex elements # of the vector self and returns a real vector. # # --- # * GSL::Vector::Complex#sqrt # # Calculates the square root of the complex elements of the vector self # and returns a new complex vector. # # --- # * GSL::Vector::Complex#exp # * GSL::Vector::Complex#pow(a) # * GSL::Vector::Complex#log # * GSL::Vector::Complex#log10 # * GSL::Vector::Complex#log_b(base) # * GSL::Vector::Complex#sin # * GSL::Vector::Complex#cos # * GSL::Vector::Complex#tan # * GSL::Vector::Complex#sec # * GSL::Vector::Complex#csc # * GSL::Vector::Complex#cot # * GSL::Vector::Complex#arcsin # * GSL::Vector::Complex#arccos # * GSL::Vector::Complex#arctan # * GSL::Vector::Complex#arcsec # * GSL::Vector::Complex#arccsc # * GSL::Vector::Complex#arccot # * GSL::Vector::Complex#sinh # * GSL::Vector::Complex#cosh # * GSL::Vector::Complex#tanh # * GSL::Vector::Complex#sech # * GSL::Vector::Complex#csch # * GSL::Vector::Complex#coth # * GSL::Vector::Complex#arcsinh # * GSL::Vector::Complex#arccosh # * GSL::Vector::Complex#arctanh # * GSL::Vector::Complex#arcsech # * GSL::Vector::Complex#arccsch # * GSL::Vector::Complex#arccoth # # # === {}[link:index.html"name="2.9] Statistics # --- # * GSL::Vector::Complex#sum # # Returns a GSL::Complex object representing the sum of all elements of # self. # --- # * GSL::Vector::Complex#mean # # Returns a GSL::Complex object representing the mean of all elements # of self. # --- # * GSL::Vector::Complex#tss # # Returns the total sum of squares about self.mean. This is a real # number, i.e. a Float. # --- # * GSL::Vector::Complex#tss_m(mean) # # Returns the total sum of squares about mean. This is a real number, # i.e. a Float. # --- # * GSL::Vector::Complex#variance # # Returns the variance of self. This is a real number, i.e. a # Float. # --- # * GSL::Vector::Complex#variance_m(mean) # # Returns the variance of self around mean. This is a real # number, i.e. a Float. # --- # * GSL::Vector::Complex#variance_fm(mean) # # Returns the variance of self around the fixed mean mean. This # is a real number, i.e. a Float. # --- # * GSL::Vector::Complex#sd # # Returns the standard deviation of self. This is a real number, i.e. # a Float. # --- # * GSL::Vector::Complex#sd_m(mean) # # Returns the standard deviation of self around mean. This is a # real number, i.e. a Float. # --- # * GSL::Vector::Complex#sd_fm(mean) # # Returns the standard deviation of self around the fixed mean # mean. This is a real number, i.e. a Float. # # == {}[link:index.html"name="3] Data Conversions # --- # * GSL::Vector#to_complex # * GSL::Vector#to_complex2 # # Create a complex vector from a real vector. # # >> v = Vector[1..4] # => GSL::Vector # [ 1.000e+00 2.000e+00 3.000e+00 4.000e+00 ] # >> v.to_complex # [ [1.000e+00 0.000e+00] [2.000e+00 0.000e+00] [3.000e+00 0.000e+00] [4.000e+00 0.000e+00] ] # => # # >> v.to_complex2 # [ [1.000e+00 2.000e+00] [3.000e+00 4.000e+00] ] # => # # # {Reference index}[link:files/rdoc/ref_rdoc.html] # {top}[link:files/rdoc/index_rdoc.html] # #