# This file was automatically generated by SWIG (http://www.swig.org). # Version 1.3.31 # # Don't modify this file, modify the SWIG interface instead. package Math::GSL::Matrix; require Exporter; require DynaLoader; @ISA = qw(Exporter DynaLoader); package Math::GSL::Matrixc; bootstrap Math::GSL::Matrix; package Math::GSL::Matrix; @EXPORT = qw( ); # ---------- BASE METHODS ------------- package Math::GSL::Matrix; sub TIEHASH { my ($classname,$obj) = @_; return bless $obj, $classname; } sub CLEAR { } sub FIRSTKEY { } sub NEXTKEY { } sub FETCH { my ($self,$field) = @_; my $member_func = "swig_${field}_get"; $self->$member_func(); } sub STORE { my ($self,$field,$newval) = @_; my $member_func = "swig_${field}_set"; $self->$member_func($newval); } sub this { my $ptr = shift; return tied(%$ptr); } # ------- FUNCTION WRAPPERS -------- package Math::GSL::Matrix; *gsl_vector_alloc = *Math::GSL::Matrixc::gsl_vector_alloc; *gsl_vector_calloc = *Math::GSL::Matrixc::gsl_vector_calloc; *gsl_vector_alloc_from_block = *Math::GSL::Matrixc::gsl_vector_alloc_from_block; *gsl_vector_alloc_from_vector = *Math::GSL::Matrixc::gsl_vector_alloc_from_vector; *gsl_vector_free = *Math::GSL::Matrixc::gsl_vector_free; *gsl_vector_view_array = *Math::GSL::Matrixc::gsl_vector_view_array; *gsl_vector_view_array_with_stride = *Math::GSL::Matrixc::gsl_vector_view_array_with_stride; *gsl_vector_const_view_array = *Math::GSL::Matrixc::gsl_vector_const_view_array; *gsl_vector_const_view_array_with_stride = *Math::GSL::Matrixc::gsl_vector_const_view_array_with_stride; *gsl_vector_subvector = *Math::GSL::Matrixc::gsl_vector_subvector; *gsl_vector_subvector_with_stride = *Math::GSL::Matrixc::gsl_vector_subvector_with_stride; *gsl_vector_const_subvector = *Math::GSL::Matrixc::gsl_vector_const_subvector; *gsl_vector_const_subvector_with_stride = *Math::GSL::Matrixc::gsl_vector_const_subvector_with_stride; *gsl_vector_get = *Math::GSL::Matrixc::gsl_vector_get; *gsl_vector_set = *Math::GSL::Matrixc::gsl_vector_set; *gsl_vector_ptr = *Math::GSL::Matrixc::gsl_vector_ptr; *gsl_vector_const_ptr = *Math::GSL::Matrixc::gsl_vector_const_ptr; *gsl_vector_set_zero = *Math::GSL::Matrixc::gsl_vector_set_zero; *gsl_vector_set_all = *Math::GSL::Matrixc::gsl_vector_set_all; *gsl_vector_set_basis = *Math::GSL::Matrixc::gsl_vector_set_basis; *gsl_vector_fread = *Math::GSL::Matrixc::gsl_vector_fread; *gsl_vector_fwrite = *Math::GSL::Matrixc::gsl_vector_fwrite; *gsl_vector_fscanf = *Math::GSL::Matrixc::gsl_vector_fscanf; *gsl_vector_fprintf = *Math::GSL::Matrixc::gsl_vector_fprintf; *gsl_vector_memcpy = *Math::GSL::Matrixc::gsl_vector_memcpy; *gsl_vector_reverse = *Math::GSL::Matrixc::gsl_vector_reverse; *gsl_vector_swap = *Math::GSL::Matrixc::gsl_vector_swap; *gsl_vector_swap_elements = *Math::GSL::Matrixc::gsl_vector_swap_elements; *gsl_vector_max = *Math::GSL::Matrixc::gsl_vector_max; *gsl_vector_min = *Math::GSL::Matrixc::gsl_vector_min; *gsl_vector_minmax = *Math::GSL::Matrixc::gsl_vector_minmax; *gsl_vector_max_index = *Math::GSL::Matrixc::gsl_vector_max_index; *gsl_vector_min_index = *Math::GSL::Matrixc::gsl_vector_min_index; *gsl_vector_minmax_index = *Math::GSL::Matrixc::gsl_vector_minmax_index; *gsl_vector_add = *Math::GSL::Matrixc::gsl_vector_add; *gsl_vector_sub = *Math::GSL::Matrixc::gsl_vector_sub; *gsl_vector_mul = *Math::GSL::Matrixc::gsl_vector_mul; *gsl_vector_div = *Math::GSL::Matrixc::gsl_vector_div; *gsl_vector_scale = *Math::GSL::Matrixc::gsl_vector_scale; *gsl_vector_add_constant = *Math::GSL::Matrixc::gsl_vector_add_constant; *gsl_vector_isnull = *Math::GSL::Matrixc::gsl_vector_isnull; *gsl_vector_ispos = *Math::GSL::Matrixc::gsl_vector_ispos; *gsl_vector_isneg = *Math::GSL::Matrixc::gsl_vector_isneg; *gsl_vector_isnonneg = *Math::GSL::Matrixc::gsl_vector_isnonneg; *gsl_matrix_alloc = *Math::GSL::Matrixc::gsl_matrix_alloc; *gsl_matrix_calloc = *Math::GSL::Matrixc::gsl_matrix_calloc; *gsl_matrix_alloc_from_block = *Math::GSL::Matrixc::gsl_matrix_alloc_from_block; *gsl_matrix_alloc_from_matrix = *Math::GSL::Matrixc::gsl_matrix_alloc_from_matrix; *gsl_vector_alloc_row_from_matrix = *Math::GSL::Matrixc::gsl_vector_alloc_row_from_matrix; *gsl_vector_alloc_col_from_matrix = *Math::GSL::Matrixc::gsl_vector_alloc_col_from_matrix; *gsl_matrix_free = *Math::GSL::Matrixc::gsl_matrix_free; *gsl_matrix_submatrix = *Math::GSL::Matrixc::gsl_matrix_submatrix; *gsl_matrix_row = *Math::GSL::Matrixc::gsl_matrix_row; *gsl_matrix_column = *Math::GSL::Matrixc::gsl_matrix_column; *gsl_matrix_diagonal = *Math::GSL::Matrixc::gsl_matrix_diagonal; *gsl_matrix_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_subdiagonal; *gsl_matrix_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_superdiagonal; *gsl_matrix_subrow = *Math::GSL::Matrixc::gsl_matrix_subrow; *gsl_matrix_subcolumn = *Math::GSL::Matrixc::gsl_matrix_subcolumn; *gsl_matrix_view_array = *Math::GSL::Matrixc::gsl_matrix_view_array; *gsl_matrix_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_view_array_with_tda; *gsl_matrix_view_vector = *Math::GSL::Matrixc::gsl_matrix_view_vector; *gsl_matrix_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_view_vector_with_tda; *gsl_matrix_const_submatrix = *Math::GSL::Matrixc::gsl_matrix_const_submatrix; *gsl_matrix_const_row = *Math::GSL::Matrixc::gsl_matrix_const_row; *gsl_matrix_const_column = *Math::GSL::Matrixc::gsl_matrix_const_column; *gsl_matrix_const_diagonal = *Math::GSL::Matrixc::gsl_matrix_const_diagonal; *gsl_matrix_const_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_const_subdiagonal; *gsl_matrix_const_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_const_superdiagonal; *gsl_matrix_const_subrow = *Math::GSL::Matrixc::gsl_matrix_const_subrow; *gsl_matrix_const_subcolumn = *Math::GSL::Matrixc::gsl_matrix_const_subcolumn; *gsl_matrix_const_view_array = *Math::GSL::Matrixc::gsl_matrix_const_view_array; *gsl_matrix_const_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_const_view_array_with_tda; *gsl_matrix_const_view_vector = *Math::GSL::Matrixc::gsl_matrix_const_view_vector; *gsl_matrix_const_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_const_view_vector_with_tda; *gsl_matrix_get = *Math::GSL::Matrixc::gsl_matrix_get; *gsl_matrix_set = *Math::GSL::Matrixc::gsl_matrix_set; *gsl_matrix_ptr = *Math::GSL::Matrixc::gsl_matrix_ptr; *gsl_matrix_const_ptr = *Math::GSL::Matrixc::gsl_matrix_const_ptr; *gsl_matrix_set_zero = *Math::GSL::Matrixc::gsl_matrix_set_zero; *gsl_matrix_set_identity = *Math::GSL::Matrixc::gsl_matrix_set_identity; *gsl_matrix_set_all = *Math::GSL::Matrixc::gsl_matrix_set_all; *gsl_matrix_fread = *Math::GSL::Matrixc::gsl_matrix_fread; *gsl_matrix_fwrite = *Math::GSL::Matrixc::gsl_matrix_fwrite; *gsl_matrix_fscanf = *Math::GSL::Matrixc::gsl_matrix_fscanf; *gsl_matrix_fprintf = *Math::GSL::Matrixc::gsl_matrix_fprintf; *gsl_matrix_memcpy = *Math::GSL::Matrixc::gsl_matrix_memcpy; *gsl_matrix_swap = *Math::GSL::Matrixc::gsl_matrix_swap; *gsl_matrix_swap_rows = *Math::GSL::Matrixc::gsl_matrix_swap_rows; *gsl_matrix_swap_columns = *Math::GSL::Matrixc::gsl_matrix_swap_columns; *gsl_matrix_swap_rowcol = *Math::GSL::Matrixc::gsl_matrix_swap_rowcol; *gsl_matrix_transpose = *Math::GSL::Matrixc::gsl_matrix_transpose; *gsl_matrix_transpose_memcpy = *Math::GSL::Matrixc::gsl_matrix_transpose_memcpy; *gsl_matrix_max = *Math::GSL::Matrixc::gsl_matrix_max; *gsl_matrix_min = *Math::GSL::Matrixc::gsl_matrix_min; *gsl_matrix_minmax = *Math::GSL::Matrixc::gsl_matrix_minmax; *gsl_matrix_max_index = *Math::GSL::Matrixc::gsl_matrix_max_index; *gsl_matrix_min_index = *Math::GSL::Matrixc::gsl_matrix_min_index; *gsl_matrix_minmax_index = *Math::GSL::Matrixc::gsl_matrix_minmax_index; *gsl_matrix_isnull = *Math::GSL::Matrixc::gsl_matrix_isnull; *gsl_matrix_ispos = *Math::GSL::Matrixc::gsl_matrix_ispos; *gsl_matrix_isneg = *Math::GSL::Matrixc::gsl_matrix_isneg; *gsl_matrix_isnonneg = *Math::GSL::Matrixc::gsl_matrix_isnonneg; *gsl_matrix_add = *Math::GSL::Matrixc::gsl_matrix_add; *gsl_matrix_sub = *Math::GSL::Matrixc::gsl_matrix_sub; *gsl_matrix_mul_elements = *Math::GSL::Matrixc::gsl_matrix_mul_elements; *gsl_matrix_div_elements = *Math::GSL::Matrixc::gsl_matrix_div_elements; *gsl_matrix_scale = *Math::GSL::Matrixc::gsl_matrix_scale; *gsl_matrix_add_constant = *Math::GSL::Matrixc::gsl_matrix_add_constant; *gsl_matrix_add_diagonal = *Math::GSL::Matrixc::gsl_matrix_add_diagonal; *gsl_matrix_get_row = *Math::GSL::Matrixc::gsl_matrix_get_row; *gsl_matrix_get_col = *Math::GSL::Matrixc::gsl_matrix_get_col; *gsl_matrix_set_row = *Math::GSL::Matrixc::gsl_matrix_set_row; *gsl_matrix_set_col = *Math::GSL::Matrixc::gsl_matrix_set_col; *gsl_matrix_int_alloc = *Math::GSL::Matrixc::gsl_matrix_int_alloc; *gsl_matrix_int_calloc = *Math::GSL::Matrixc::gsl_matrix_int_calloc; *gsl_matrix_int_alloc_from_block = *Math::GSL::Matrixc::gsl_matrix_int_alloc_from_block; *gsl_matrix_int_alloc_from_matrix = *Math::GSL::Matrixc::gsl_matrix_int_alloc_from_matrix; *gsl_vector_int_alloc_row_from_matrix = *Math::GSL::Matrixc::gsl_vector_int_alloc_row_from_matrix; *gsl_vector_int_alloc_col_from_matrix = *Math::GSL::Matrixc::gsl_vector_int_alloc_col_from_matrix; *gsl_matrix_int_free = *Math::GSL::Matrixc::gsl_matrix_int_free; *gsl_matrix_int_submatrix = *Math::GSL::Matrixc::gsl_matrix_int_submatrix; *gsl_matrix_int_row = *Math::GSL::Matrixc::gsl_matrix_int_row; *gsl_matrix_int_column = *Math::GSL::Matrixc::gsl_matrix_int_column; *gsl_matrix_int_diagonal = *Math::GSL::Matrixc::gsl_matrix_int_diagonal; *gsl_matrix_int_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_int_subdiagonal; *gsl_matrix_int_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_int_superdiagonal; *gsl_matrix_int_subrow = *Math::GSL::Matrixc::gsl_matrix_int_subrow; *gsl_matrix_int_subcolumn = *Math::GSL::Matrixc::gsl_matrix_int_subcolumn; *gsl_matrix_int_view_array = *Math::GSL::Matrixc::gsl_matrix_int_view_array; *gsl_matrix_int_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_int_view_array_with_tda; *gsl_matrix_int_view_vector = *Math::GSL::Matrixc::gsl_matrix_int_view_vector; *gsl_matrix_int_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_int_view_vector_with_tda; *gsl_matrix_int_const_submatrix = *Math::GSL::Matrixc::gsl_matrix_int_const_submatrix; *gsl_matrix_int_const_row = *Math::GSL::Matrixc::gsl_matrix_int_const_row; *gsl_matrix_int_const_column = *Math::GSL::Matrixc::gsl_matrix_int_const_column; *gsl_matrix_int_const_diagonal = *Math::GSL::Matrixc::gsl_matrix_int_const_diagonal; *gsl_matrix_int_const_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_int_const_subdiagonal; *gsl_matrix_int_const_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_int_const_superdiagonal; *gsl_matrix_int_const_subrow = *Math::GSL::Matrixc::gsl_matrix_int_const_subrow; *gsl_matrix_int_const_subcolumn = *Math::GSL::Matrixc::gsl_matrix_int_const_subcolumn; *gsl_matrix_int_const_view_array = *Math::GSL::Matrixc::gsl_matrix_int_const_view_array; *gsl_matrix_int_const_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_int_const_view_array_with_tda; *gsl_matrix_int_const_view_vector = *Math::GSL::Matrixc::gsl_matrix_int_const_view_vector; *gsl_matrix_int_const_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_int_const_view_vector_with_tda; *gsl_matrix_int_get = *Math::GSL::Matrixc::gsl_matrix_int_get; *gsl_matrix_int_set = *Math::GSL::Matrixc::gsl_matrix_int_set; *gsl_matrix_int_ptr = *Math::GSL::Matrixc::gsl_matrix_int_ptr; *gsl_matrix_int_const_ptr = *Math::GSL::Matrixc::gsl_matrix_int_const_ptr; *gsl_matrix_int_set_zero = *Math::GSL::Matrixc::gsl_matrix_int_set_zero; *gsl_matrix_int_set_identity = *Math::GSL::Matrixc::gsl_matrix_int_set_identity; *gsl_matrix_int_set_all = *Math::GSL::Matrixc::gsl_matrix_int_set_all; *gsl_matrix_int_fread = *Math::GSL::Matrixc::gsl_matrix_int_fread; *gsl_matrix_int_fwrite = *Math::GSL::Matrixc::gsl_matrix_int_fwrite; *gsl_matrix_int_fscanf = *Math::GSL::Matrixc::gsl_matrix_int_fscanf; *gsl_matrix_int_fprintf = *Math::GSL::Matrixc::gsl_matrix_int_fprintf; *gsl_matrix_int_memcpy = *Math::GSL::Matrixc::gsl_matrix_int_memcpy; *gsl_matrix_int_swap = *Math::GSL::Matrixc::gsl_matrix_int_swap; *gsl_matrix_int_swap_rows = *Math::GSL::Matrixc::gsl_matrix_int_swap_rows; *gsl_matrix_int_swap_columns = *Math::GSL::Matrixc::gsl_matrix_int_swap_columns; *gsl_matrix_int_swap_rowcol = *Math::GSL::Matrixc::gsl_matrix_int_swap_rowcol; *gsl_matrix_int_transpose = *Math::GSL::Matrixc::gsl_matrix_int_transpose; *gsl_matrix_int_transpose_memcpy = *Math::GSL::Matrixc::gsl_matrix_int_transpose_memcpy; *gsl_matrix_int_max = *Math::GSL::Matrixc::gsl_matrix_int_max; *gsl_matrix_int_min = *Math::GSL::Matrixc::gsl_matrix_int_min; *gsl_matrix_int_minmax = *Math::GSL::Matrixc::gsl_matrix_int_minmax; *gsl_matrix_int_max_index = *Math::GSL::Matrixc::gsl_matrix_int_max_index; *gsl_matrix_int_min_index = *Math::GSL::Matrixc::gsl_matrix_int_min_index; *gsl_matrix_int_minmax_index = *Math::GSL::Matrixc::gsl_matrix_int_minmax_index; *gsl_matrix_int_isnull = *Math::GSL::Matrixc::gsl_matrix_int_isnull; *gsl_matrix_int_ispos = *Math::GSL::Matrixc::gsl_matrix_int_ispos; *gsl_matrix_int_isneg = *Math::GSL::Matrixc::gsl_matrix_int_isneg; *gsl_matrix_int_isnonneg = *Math::GSL::Matrixc::gsl_matrix_int_isnonneg; *gsl_matrix_int_add = *Math::GSL::Matrixc::gsl_matrix_int_add; *gsl_matrix_int_sub = *Math::GSL::Matrixc::gsl_matrix_int_sub; *gsl_matrix_int_mul_elements = *Math::GSL::Matrixc::gsl_matrix_int_mul_elements; *gsl_matrix_int_div_elements = *Math::GSL::Matrixc::gsl_matrix_int_div_elements; *gsl_matrix_int_scale = *Math::GSL::Matrixc::gsl_matrix_int_scale; *gsl_matrix_int_add_constant = *Math::GSL::Matrixc::gsl_matrix_int_add_constant; *gsl_matrix_int_add_diagonal = *Math::GSL::Matrixc::gsl_matrix_int_add_diagonal; *gsl_matrix_int_get_row = *Math::GSL::Matrixc::gsl_matrix_int_get_row; *gsl_matrix_int_get_col = *Math::GSL::Matrixc::gsl_matrix_int_get_col; *gsl_matrix_int_set_row = *Math::GSL::Matrixc::gsl_matrix_int_set_row; *gsl_matrix_int_set_col = *Math::GSL::Matrixc::gsl_matrix_int_set_col; *gsl_matrix_complex_alloc = *Math::GSL::Matrixc::gsl_matrix_complex_alloc; *gsl_matrix_complex_calloc = *Math::GSL::Matrixc::gsl_matrix_complex_calloc; *gsl_matrix_complex_alloc_from_block = *Math::GSL::Matrixc::gsl_matrix_complex_alloc_from_block; *gsl_matrix_complex_alloc_from_matrix = *Math::GSL::Matrixc::gsl_matrix_complex_alloc_from_matrix; *gsl_vector_complex_alloc_row_from_matrix = *Math::GSL::Matrixc::gsl_vector_complex_alloc_row_from_matrix; *gsl_vector_complex_alloc_col_from_matrix = *Math::GSL::Matrixc::gsl_vector_complex_alloc_col_from_matrix; *gsl_matrix_complex_free = *Math::GSL::Matrixc::gsl_matrix_complex_free; *gsl_matrix_complex_submatrix = *Math::GSL::Matrixc::gsl_matrix_complex_submatrix; *gsl_matrix_complex_row = *Math::GSL::Matrixc::gsl_matrix_complex_row; *gsl_matrix_complex_column = *Math::GSL::Matrixc::gsl_matrix_complex_column; *gsl_matrix_complex_diagonal = *Math::GSL::Matrixc::gsl_matrix_complex_diagonal; *gsl_matrix_complex_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_complex_subdiagonal; *gsl_matrix_complex_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_complex_superdiagonal; *gsl_matrix_complex_subrow = *Math::GSL::Matrixc::gsl_matrix_complex_subrow; *gsl_matrix_complex_subcolumn = *Math::GSL::Matrixc::gsl_matrix_complex_subcolumn; *gsl_matrix_complex_view_array = *Math::GSL::Matrixc::gsl_matrix_complex_view_array; *gsl_matrix_complex_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_complex_view_array_with_tda; *gsl_matrix_complex_view_vector = *Math::GSL::Matrixc::gsl_matrix_complex_view_vector; *gsl_matrix_complex_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_complex_view_vector_with_tda; *gsl_matrix_complex_const_submatrix = *Math::GSL::Matrixc::gsl_matrix_complex_const_submatrix; *gsl_matrix_complex_const_row = *Math::GSL::Matrixc::gsl_matrix_complex_const_row; *gsl_matrix_complex_const_column = *Math::GSL::Matrixc::gsl_matrix_complex_const_column; *gsl_matrix_complex_const_diagonal = *Math::GSL::Matrixc::gsl_matrix_complex_const_diagonal; *gsl_matrix_complex_const_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_complex_const_subdiagonal; *gsl_matrix_complex_const_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_complex_const_superdiagonal; *gsl_matrix_complex_const_subrow = *Math::GSL::Matrixc::gsl_matrix_complex_const_subrow; *gsl_matrix_complex_const_subcolumn = *Math::GSL::Matrixc::gsl_matrix_complex_const_subcolumn; *gsl_matrix_complex_const_view_array = *Math::GSL::Matrixc::gsl_matrix_complex_const_view_array; *gsl_matrix_complex_const_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_complex_const_view_array_with_tda; *gsl_matrix_complex_const_view_vector = *Math::GSL::Matrixc::gsl_matrix_complex_const_view_vector; *gsl_matrix_complex_const_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_complex_const_view_vector_with_tda; *gsl_matrix_complex_get = *Math::GSL::Matrixc::gsl_matrix_complex_get; *gsl_matrix_complex_set = *Math::GSL::Matrixc::gsl_matrix_complex_set; *gsl_matrix_complex_ptr = *Math::GSL::Matrixc::gsl_matrix_complex_ptr; *gsl_matrix_complex_const_ptr = *Math::GSL::Matrixc::gsl_matrix_complex_const_ptr; *gsl_matrix_complex_set_zero = *Math::GSL::Matrixc::gsl_matrix_complex_set_zero; *gsl_matrix_complex_set_identity = *Math::GSL::Matrixc::gsl_matrix_complex_set_identity; *gsl_matrix_complex_set_all = *Math::GSL::Matrixc::gsl_matrix_complex_set_all; *gsl_matrix_complex_fread = *Math::GSL::Matrixc::gsl_matrix_complex_fread; *gsl_matrix_complex_fwrite = *Math::GSL::Matrixc::gsl_matrix_complex_fwrite; *gsl_matrix_complex_fscanf = *Math::GSL::Matrixc::gsl_matrix_complex_fscanf; *gsl_matrix_complex_fprintf = *Math::GSL::Matrixc::gsl_matrix_complex_fprintf; *gsl_matrix_complex_memcpy = *Math::GSL::Matrixc::gsl_matrix_complex_memcpy; *gsl_matrix_complex_swap = *Math::GSL::Matrixc::gsl_matrix_complex_swap; *gsl_matrix_complex_swap_rows = *Math::GSL::Matrixc::gsl_matrix_complex_swap_rows; *gsl_matrix_complex_swap_columns = *Math::GSL::Matrixc::gsl_matrix_complex_swap_columns; *gsl_matrix_complex_swap_rowcol = *Math::GSL::Matrixc::gsl_matrix_complex_swap_rowcol; *gsl_matrix_complex_transpose = *Math::GSL::Matrixc::gsl_matrix_complex_transpose; *gsl_matrix_complex_transpose_memcpy = *Math::GSL::Matrixc::gsl_matrix_complex_transpose_memcpy; *gsl_matrix_complex_isnull = *Math::GSL::Matrixc::gsl_matrix_complex_isnull; *gsl_matrix_complex_ispos = *Math::GSL::Matrixc::gsl_matrix_complex_ispos; *gsl_matrix_complex_isneg = *Math::GSL::Matrixc::gsl_matrix_complex_isneg; *gsl_matrix_complex_add = *Math::GSL::Matrixc::gsl_matrix_complex_add; *gsl_matrix_complex_sub = *Math::GSL::Matrixc::gsl_matrix_complex_sub; *gsl_matrix_complex_mul_elements = *Math::GSL::Matrixc::gsl_matrix_complex_mul_elements; *gsl_matrix_complex_div_elements = *Math::GSL::Matrixc::gsl_matrix_complex_div_elements; *gsl_matrix_complex_scale = *Math::GSL::Matrixc::gsl_matrix_complex_scale; *gsl_matrix_complex_add_constant = *Math::GSL::Matrixc::gsl_matrix_complex_add_constant; *gsl_matrix_complex_add_diagonal = *Math::GSL::Matrixc::gsl_matrix_complex_add_diagonal; *gsl_matrix_complex_get_row = *Math::GSL::Matrixc::gsl_matrix_complex_get_row; *gsl_matrix_complex_get_col = *Math::GSL::Matrixc::gsl_matrix_complex_get_col; *gsl_matrix_complex_set_row = *Math::GSL::Matrixc::gsl_matrix_complex_set_row; *gsl_matrix_complex_set_col = *Math::GSL::Matrixc::gsl_matrix_complex_set_col; *gsl_matrix_char_alloc = *Math::GSL::Matrixc::gsl_matrix_char_alloc; *gsl_matrix_char_calloc = *Math::GSL::Matrixc::gsl_matrix_char_calloc; *gsl_matrix_char_alloc_from_block = *Math::GSL::Matrixc::gsl_matrix_char_alloc_from_block; *gsl_matrix_char_alloc_from_matrix = *Math::GSL::Matrixc::gsl_matrix_char_alloc_from_matrix; *gsl_vector_char_alloc_row_from_matrix = *Math::GSL::Matrixc::gsl_vector_char_alloc_row_from_matrix; *gsl_vector_char_alloc_col_from_matrix = *Math::GSL::Matrixc::gsl_vector_char_alloc_col_from_matrix; *gsl_matrix_char_free = *Math::GSL::Matrixc::gsl_matrix_char_free; *gsl_matrix_char_submatrix = *Math::GSL::Matrixc::gsl_matrix_char_submatrix; *gsl_matrix_char_row = *Math::GSL::Matrixc::gsl_matrix_char_row; *gsl_matrix_char_column = *Math::GSL::Matrixc::gsl_matrix_char_column; *gsl_matrix_char_diagonal = *Math::GSL::Matrixc::gsl_matrix_char_diagonal; *gsl_matrix_char_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_char_subdiagonal; *gsl_matrix_char_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_char_superdiagonal; *gsl_matrix_char_subrow = *Math::GSL::Matrixc::gsl_matrix_char_subrow; *gsl_matrix_char_subcolumn = *Math::GSL::Matrixc::gsl_matrix_char_subcolumn; *gsl_matrix_char_view_array = *Math::GSL::Matrixc::gsl_matrix_char_view_array; *gsl_matrix_char_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_char_view_array_with_tda; *gsl_matrix_char_view_vector = *Math::GSL::Matrixc::gsl_matrix_char_view_vector; *gsl_matrix_char_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_char_view_vector_with_tda; *gsl_matrix_char_const_submatrix = *Math::GSL::Matrixc::gsl_matrix_char_const_submatrix; *gsl_matrix_char_const_row = *Math::GSL::Matrixc::gsl_matrix_char_const_row; *gsl_matrix_char_const_column = *Math::GSL::Matrixc::gsl_matrix_char_const_column; *gsl_matrix_char_const_diagonal = *Math::GSL::Matrixc::gsl_matrix_char_const_diagonal; *gsl_matrix_char_const_subdiagonal = *Math::GSL::Matrixc::gsl_matrix_char_const_subdiagonal; *gsl_matrix_char_const_superdiagonal = *Math::GSL::Matrixc::gsl_matrix_char_const_superdiagonal; *gsl_matrix_char_const_subrow = *Math::GSL::Matrixc::gsl_matrix_char_const_subrow; *gsl_matrix_char_const_subcolumn = *Math::GSL::Matrixc::gsl_matrix_char_const_subcolumn; *gsl_matrix_char_const_view_array = *Math::GSL::Matrixc::gsl_matrix_char_const_view_array; *gsl_matrix_char_const_view_array_with_tda = *Math::GSL::Matrixc::gsl_matrix_char_const_view_array_with_tda; *gsl_matrix_char_const_view_vector = *Math::GSL::Matrixc::gsl_matrix_char_const_view_vector; *gsl_matrix_char_const_view_vector_with_tda = *Math::GSL::Matrixc::gsl_matrix_char_const_view_vector_with_tda; *gsl_matrix_char_get = *Math::GSL::Matrixc::gsl_matrix_char_get; *gsl_matrix_char_set = *Math::GSL::Matrixc::gsl_matrix_char_set; *gsl_matrix_char_ptr = *Math::GSL::Matrixc::gsl_matrix_char_ptr; *gsl_matrix_char_const_ptr = *Math::GSL::Matrixc::gsl_matrix_char_const_ptr; *gsl_matrix_char_set_zero = *Math::GSL::Matrixc::gsl_matrix_char_set_zero; *gsl_matrix_char_set_identity = *Math::GSL::Matrixc::gsl_matrix_char_set_identity; *gsl_matrix_char_set_all = *Math::GSL::Matrixc::gsl_matrix_char_set_all; *gsl_matrix_char_fread = *Math::GSL::Matrixc::gsl_matrix_char_fread; *gsl_matrix_char_fwrite = *Math::GSL::Matrixc::gsl_matrix_char_fwrite; *gsl_matrix_char_fscanf = *Math::GSL::Matrixc::gsl_matrix_char_fscanf; *gsl_matrix_char_fprintf = *Math::GSL::Matrixc::gsl_matrix_char_fprintf; *gsl_matrix_char_memcpy = *Math::GSL::Matrixc::gsl_matrix_char_memcpy; *gsl_matrix_char_swap = *Math::GSL::Matrixc::gsl_matrix_char_swap; *gsl_matrix_char_swap_rows = *Math::GSL::Matrixc::gsl_matrix_char_swap_rows; *gsl_matrix_char_swap_columns = *Math::GSL::Matrixc::gsl_matrix_char_swap_columns; *gsl_matrix_char_swap_rowcol = *Math::GSL::Matrixc::gsl_matrix_char_swap_rowcol; *gsl_matrix_char_transpose = *Math::GSL::Matrixc::gsl_matrix_char_transpose; *gsl_matrix_char_transpose_memcpy = *Math::GSL::Matrixc::gsl_matrix_char_transpose_memcpy; *gsl_matrix_char_max = *Math::GSL::Matrixc::gsl_matrix_char_max; *gsl_matrix_char_min = *Math::GSL::Matrixc::gsl_matrix_char_min; *gsl_matrix_char_minmax = *Math::GSL::Matrixc::gsl_matrix_char_minmax; *gsl_matrix_char_max_index = *Math::GSL::Matrixc::gsl_matrix_char_max_index; *gsl_matrix_char_min_index = *Math::GSL::Matrixc::gsl_matrix_char_min_index; *gsl_matrix_char_minmax_index = *Math::GSL::Matrixc::gsl_matrix_char_minmax_index; *gsl_matrix_char_isnull = *Math::GSL::Matrixc::gsl_matrix_char_isnull; *gsl_matrix_char_ispos = *Math::GSL::Matrixc::gsl_matrix_char_ispos; *gsl_matrix_char_isneg = *Math::GSL::Matrixc::gsl_matrix_char_isneg; *gsl_matrix_char_isnonneg = *Math::GSL::Matrixc::gsl_matrix_char_isnonneg; *gsl_matrix_char_add = *Math::GSL::Matrixc::gsl_matrix_char_add; *gsl_matrix_char_sub = *Math::GSL::Matrixc::gsl_matrix_char_sub; *gsl_matrix_char_mul_elements = *Math::GSL::Matrixc::gsl_matrix_char_mul_elements; *gsl_matrix_char_div_elements = *Math::GSL::Matrixc::gsl_matrix_char_div_elements; *gsl_matrix_char_scale = *Math::GSL::Matrixc::gsl_matrix_char_scale; *gsl_matrix_char_add_constant = *Math::GSL::Matrixc::gsl_matrix_char_add_constant; *gsl_matrix_char_add_diagonal = *Math::GSL::Matrixc::gsl_matrix_char_add_diagonal; *gsl_matrix_char_get_row = *Math::GSL::Matrixc::gsl_matrix_char_get_row; *gsl_matrix_char_get_col = *Math::GSL::Matrixc::gsl_matrix_char_get_col; *gsl_matrix_char_set_row = *Math::GSL::Matrixc::gsl_matrix_char_set_row; *gsl_matrix_char_set_col = *Math::GSL::Matrixc::gsl_matrix_char_set_col; ############# Class : Math::GSL::Matrix::gsl_complex_long_double ############## package Math::GSL::Matrix::gsl_complex_long_double; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_dat_get = *Math::GSL::Matrixc::gsl_complex_long_double_dat_get; *swig_dat_set = *Math::GSL::Matrixc::gsl_complex_long_double_dat_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_complex_long_double(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_complex_long_double($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_complex ############## package Math::GSL::Matrix::gsl_complex; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_dat_get = *Math::GSL::Matrixc::gsl_complex_dat_get; *swig_dat_set = *Math::GSL::Matrixc::gsl_complex_dat_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_complex(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_complex($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_complex_float ############## package Math::GSL::Matrix::gsl_complex_float; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_dat_get = *Math::GSL::Matrixc::gsl_complex_float_dat_get; *swig_dat_set = *Math::GSL::Matrixc::gsl_complex_float_dat_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_complex_float(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_complex_float($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_vector ############## package Math::GSL::Matrix::gsl_vector; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_size_get = *Math::GSL::Matrixc::gsl_vector_size_get; *swig_size_set = *Math::GSL::Matrixc::gsl_vector_size_set; *swig_stride_get = *Math::GSL::Matrixc::gsl_vector_stride_get; *swig_stride_set = *Math::GSL::Matrixc::gsl_vector_stride_set; *swig_data_get = *Math::GSL::Matrixc::gsl_vector_data_get; *swig_data_set = *Math::GSL::Matrixc::gsl_vector_data_set; *swig_block_get = *Math::GSL::Matrixc::gsl_vector_block_get; *swig_block_set = *Math::GSL::Matrixc::gsl_vector_block_set; *swig_owner_get = *Math::GSL::Matrixc::gsl_vector_owner_get; *swig_owner_set = *Math::GSL::Matrixc::gsl_vector_owner_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_vector(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_vector($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_vector_view ############## package Math::GSL::Matrix::_gsl_vector_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_vector_get = *Math::GSL::Matrixc::_gsl_vector_view_vector_get; *swig_vector_set = *Math::GSL::Matrixc::_gsl_vector_view_vector_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_vector_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_vector_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_vector_const_view ############## package Math::GSL::Matrix::_gsl_vector_const_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_vector_get = *Math::GSL::Matrixc::_gsl_vector_const_view_vector_get; *swig_vector_set = *Math::GSL::Matrixc::_gsl_vector_const_view_vector_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_vector_const_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_vector_const_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_matrix ############## package Math::GSL::Matrix::gsl_matrix; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_size1_get = *Math::GSL::Matrixc::gsl_matrix_size1_get; *swig_size1_set = *Math::GSL::Matrixc::gsl_matrix_size1_set; *swig_size2_get = *Math::GSL::Matrixc::gsl_matrix_size2_get; *swig_size2_set = *Math::GSL::Matrixc::gsl_matrix_size2_set; *swig_tda_get = *Math::GSL::Matrixc::gsl_matrix_tda_get; *swig_tda_set = *Math::GSL::Matrixc::gsl_matrix_tda_set; *swig_data_get = *Math::GSL::Matrixc::gsl_matrix_data_get; *swig_data_set = *Math::GSL::Matrixc::gsl_matrix_data_set; *swig_block_get = *Math::GSL::Matrixc::gsl_matrix_block_get; *swig_block_set = *Math::GSL::Matrixc::gsl_matrix_block_set; *swig_owner_get = *Math::GSL::Matrixc::gsl_matrix_owner_get; *swig_owner_set = *Math::GSL::Matrixc::gsl_matrix_owner_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_matrix(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_matrix($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_view ############## package Math::GSL::Matrix::_gsl_matrix_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_const_view ############## package Math::GSL::Matrix::_gsl_matrix_const_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_const_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_const_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_const_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_const_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_matrix_int ############## package Math::GSL::Matrix::gsl_matrix_int; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_size1_get = *Math::GSL::Matrixc::gsl_matrix_int_size1_get; *swig_size1_set = *Math::GSL::Matrixc::gsl_matrix_int_size1_set; *swig_size2_get = *Math::GSL::Matrixc::gsl_matrix_int_size2_get; *swig_size2_set = *Math::GSL::Matrixc::gsl_matrix_int_size2_set; *swig_tda_get = *Math::GSL::Matrixc::gsl_matrix_int_tda_get; *swig_tda_set = *Math::GSL::Matrixc::gsl_matrix_int_tda_set; *swig_data_get = *Math::GSL::Matrixc::gsl_matrix_int_data_get; *swig_data_set = *Math::GSL::Matrixc::gsl_matrix_int_data_set; *swig_block_get = *Math::GSL::Matrixc::gsl_matrix_int_block_get; *swig_block_set = *Math::GSL::Matrixc::gsl_matrix_int_block_set; *swig_owner_get = *Math::GSL::Matrixc::gsl_matrix_int_owner_get; *swig_owner_set = *Math::GSL::Matrixc::gsl_matrix_int_owner_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_matrix_int(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_matrix_int($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_int_view ############## package Math::GSL::Matrix::_gsl_matrix_int_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_int_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_int_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_int_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_int_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_int_const_view ############## package Math::GSL::Matrix::_gsl_matrix_int_const_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_int_const_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_int_const_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_int_const_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_int_const_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_matrix_complex ############## package Math::GSL::Matrix::gsl_matrix_complex; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_size1_get = *Math::GSL::Matrixc::gsl_matrix_complex_size1_get; *swig_size1_set = *Math::GSL::Matrixc::gsl_matrix_complex_size1_set; *swig_size2_get = *Math::GSL::Matrixc::gsl_matrix_complex_size2_get; *swig_size2_set = *Math::GSL::Matrixc::gsl_matrix_complex_size2_set; *swig_tda_get = *Math::GSL::Matrixc::gsl_matrix_complex_tda_get; *swig_tda_set = *Math::GSL::Matrixc::gsl_matrix_complex_tda_set; *swig_data_get = *Math::GSL::Matrixc::gsl_matrix_complex_data_get; *swig_data_set = *Math::GSL::Matrixc::gsl_matrix_complex_data_set; *swig_block_get = *Math::GSL::Matrixc::gsl_matrix_complex_block_get; *swig_block_set = *Math::GSL::Matrixc::gsl_matrix_complex_block_set; *swig_owner_get = *Math::GSL::Matrixc::gsl_matrix_complex_owner_get; *swig_owner_set = *Math::GSL::Matrixc::gsl_matrix_complex_owner_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_matrix_complex(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_matrix_complex($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_complex_view ############## package Math::GSL::Matrix::_gsl_matrix_complex_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_complex_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_complex_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_complex_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_complex_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_complex_const_view ############## package Math::GSL::Matrix::_gsl_matrix_complex_const_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_complex_const_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_complex_const_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_complex_const_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_complex_const_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::gsl_matrix_char ############## package Math::GSL::Matrix::gsl_matrix_char; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_size1_get = *Math::GSL::Matrixc::gsl_matrix_char_size1_get; *swig_size1_set = *Math::GSL::Matrixc::gsl_matrix_char_size1_set; *swig_size2_get = *Math::GSL::Matrixc::gsl_matrix_char_size2_get; *swig_size2_set = *Math::GSL::Matrixc::gsl_matrix_char_size2_set; *swig_tda_get = *Math::GSL::Matrixc::gsl_matrix_char_tda_get; *swig_tda_set = *Math::GSL::Matrixc::gsl_matrix_char_tda_set; *swig_data_get = *Math::GSL::Matrixc::gsl_matrix_char_data_get; *swig_data_set = *Math::GSL::Matrixc::gsl_matrix_char_data_set; *swig_block_get = *Math::GSL::Matrixc::gsl_matrix_char_block_get; *swig_block_set = *Math::GSL::Matrixc::gsl_matrix_char_block_set; *swig_owner_get = *Math::GSL::Matrixc::gsl_matrix_char_owner_get; *swig_owner_set = *Math::GSL::Matrixc::gsl_matrix_char_owner_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new_gsl_matrix_char(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete_gsl_matrix_char($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_char_view ############## package Math::GSL::Matrix::_gsl_matrix_char_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_char_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_char_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_char_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_char_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Math::GSL::Matrix::_gsl_matrix_char_const_view ############## package Math::GSL::Matrix::_gsl_matrix_char_const_view; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Math::GSL::Matrix ); %OWNER = (); %ITERATORS = (); *swig_matrix_get = *Math::GSL::Matrixc::_gsl_matrix_char_const_view_matrix_get; *swig_matrix_set = *Math::GSL::Matrixc::_gsl_matrix_char_const_view_matrix_set; sub new { my $pkg = shift; my $self = Math::GSL::Matrixc::new__gsl_matrix_char_const_view(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Math::GSL::Matrixc::delete__gsl_matrix_char_const_view($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } # ------- VARIABLE STUBS -------- package Math::GSL::Matrix; use Carp qw/croak/; use Math::GSL qw/:all/; use Math::GSL::Errno qw/:all/; @EXPORT_OK = qw/ gsl_matrix_alloc gsl_matrix_calloc gsl_matrix_alloc_from_block gsl_matrix_alloc_from_matrix gsl_vector_alloc_row_from_matrix gsl_vector_alloc_col_from_matrix gsl_matrix_free gsl_matrix_submatrix gsl_matrix_row gsl_matrix_column gsl_matrix_diagonal gsl_matrix_subdiagonal gsl_matrix_superdiagonal gsl_matrix_subrow gsl_matrix_subcolumn gsl_matrix_view_array gsl_matrix_view_array_with_tda gsl_matrix_view_vector gsl_matrix_view_vector_with_tda gsl_matrix_const_submatrix gsl_matrix_const_row gsl_matrix_const_column gsl_matrix_const_diagonal gsl_matrix_const_subdiagonal gsl_matrix_const_superdiagonal gsl_matrix_const_subrow gsl_matrix_const_subcolumn gsl_matrix_const_view_array gsl_matrix_const_view_array_with_tda gsl_matrix_const_view_vector gsl_matrix_const_view_vector_with_tda gsl_matrix_get gsl_matrix_set gsl_matrix_ptr gsl_matrix_const_ptr gsl_matrix_set_zero gsl_matrix_set_identity gsl_matrix_set_all gsl_matrix_fread gsl_matrix_fwrite gsl_matrix_fscanf gsl_matrix_fprintf gsl_matrix_memcpy gsl_matrix_swap gsl_matrix_swap_rows gsl_matrix_swap_columns gsl_matrix_swap_rowcol gsl_matrix_transpose gsl_matrix_transpose_memcpy gsl_matrix_max gsl_matrix_min gsl_matrix_minmax gsl_matrix_max_index gsl_matrix_min_index gsl_matrix_minmax_index gsl_matrix_isnull gsl_matrix_ispos gsl_matrix_isneg gsl_matrix_isnonneg gsl_matrix_add gsl_matrix_sub gsl_matrix_mul_elements gsl_matrix_div_elements gsl_matrix_scale gsl_matrix_add_constant gsl_matrix_add_diagonal gsl_matrix_char_alloc gsl_matrix_char_calloc gsl_matrix_char_alloc_from_block gsl_matrix_char_alloc_from_matrix gsl_vector_char_alloc_row_from_matrix gsl_vector_char_alloc_col_from_matrix gsl_matrix_char_free gsl_matrix_char_submatrix gsl_matrix_char_row gsl_matrix_char_column gsl_matrix_char_diagonal gsl_matrix_char_subdiagonal gsl_matrix_char_superdiagonal gsl_matrix_char_subrow gsl_matrix_char_subcolumn gsl_matrix_char_view_array gsl_matrix_char_view_array_with_tda gsl_matrix_char_view_vector gsl_matrix_char_view_vector_with_tda gsl_matrix_char_const_submatrix gsl_matrix_char_const_row gsl_matrix_char_const_column gsl_matrix_char_const_diagonal gsl_matrix_char_const_subdiagonal gsl_matrix_char_const_superdiagonal gsl_matrix_char_const_subrow gsl_matrix_char_const_subcolumn gsl_matrix_char_const_view_array gsl_matrix_char_const_view_array_with_tda gsl_matrix_char_const_view_vector gsl_matrix_char_const_view_vector_with_tda gsl_matrix_char_get gsl_matrix_char_set gsl_matrix_char_ptr gsl_matrix_char_const_ptr gsl_matrix_char_set_zero gsl_matrix_char_set_identity gsl_matrix_char_set_all gsl_matrix_char_fread gsl_matrix_char_fwrite gsl_matrix_char_fscanf gsl_matrix_char_fprintf gsl_matrix_char_memcpy gsl_matrix_char_swap gsl_matrix_char_swap_rows gsl_matrix_char_swap_columns gsl_matrix_char_swap_rowcol gsl_matrix_char_transpose gsl_matrix_char_transpose_memcpy gsl_matrix_char_max gsl_matrix_char_min gsl_matrix_char_minmax gsl_matrix_char_max_index gsl_matrix_char_min_index gsl_matrix_char_minmax_index gsl_matrix_char_isnull gsl_matrix_char_ispos gsl_matrix_char_isneg gsl_matrix_char_isnonneg gsl_matrix_char_add gsl_matrix_char_sub gsl_matrix_char_mul_elements gsl_matrix_char_div_elements gsl_matrix_char_scale gsl_matrix_char_add_constant gsl_matrix_char_add_diagonal gsl_matrix_int_alloc gsl_matrix_int_calloc gsl_matrix_int_alloc_from_block gsl_matrix_int_alloc_from_matrix gsl_vector_int_alloc_row_from_matrix gsl_vector_int_alloc_col_from_matrix gsl_matrix_int_free gsl_matrix_int_submatrix gsl_matrix_int_row gsl_matrix_int_column gsl_matrix_int_diagonal gsl_matrix_int_subdiagonal gsl_matrix_int_superdiagonal gsl_matrix_int_subrow gsl_matrix_int_subcolumn gsl_matrix_int_view_array gsl_matrix_int_view_array_with_tda gsl_matrix_int_view_vector gsl_matrix_int_view_vector_with_tda gsl_matrix_int_const_submatrix gsl_matrix_int_const_row gsl_matrix_int_const_column gsl_matrix_int_const_diagonal gsl_matrix_int_const_subdiagonal gsl_matrix_int_const_superdiagonal gsl_matrix_int_const_subrow gsl_matrix_int_const_subcolumn gsl_matrix_int_const_view_array gsl_matrix_int_const_view_array_with_tda gsl_matrix_int_const_view_vector gsl_matrix_int_const_view_vector_with_tda gsl_matrix_int_get gsl_matrix_int_set gsl_matrix_int_ptr gsl_matrix_int_const_ptr gsl_matrix_int_set_zero gsl_matrix_int_set_identity gsl_matrix_int_set_all gsl_matrix_int_fread gsl_matrix_int_fwrite gsl_matrix_int_fscanf gsl_matrix_int_fprintf gsl_matrix_int_memcpy gsl_matrix_int_swap gsl_matrix_int_swap_rows gsl_matrix_int_swap_columns gsl_matrix_int_swap_rowcol gsl_matrix_int_transpose gsl_matrix_int_transpose_memcpy gsl_matrix_int_max gsl_matrix_int_min gsl_matrix_int_minmax gsl_matrix_int_max_index gsl_matrix_int_min_index gsl_matrix_int_minmax_index gsl_matrix_int_isnull gsl_matrix_int_ispos gsl_matrix_int_isneg gsl_matrix_int_isnonneg gsl_matrix_int_add gsl_matrix_int_sub gsl_matrix_int_mul_elements gsl_matrix_int_div_elements gsl_matrix_int_scale gsl_matrix_int_add_constant gsl_matrix_int_add_diagonal gsl_matrix_get_row gsl_matrix_get_col gsl_matrix_set_row gsl_matrix_set_col gsl_matrix_complex_alloc gsl_matrix_complex_calloc gsl_matrix_complex_alloc_from_block gsl_matrix_complex_alloc_from_matrix gsl_vector_complex_alloc_row_from_matrix gsl_vector_complex_alloc_col_from_matrix gsl_matrix_complex_free gsl_matrix_complex_submatrix gsl_matrix_complex_row gsl_matrix_complex_column gsl_matrix_complex_diagonal gsl_matrix_complex_subdiagonal gsl_matrix_complex_superdiagonal gsl_matrix_complex_subrow gsl_matrix_complex_subcolumn gsl_matrix_complex_view_array gsl_matrix_complex_view_array_with_tda gsl_matrix_complex_view_vector gsl_matrix_complex_view_vector_with_tda gsl_matrix_complex_const_submatrix gsl_matrix_complex_const_row gsl_matrix_complex_const_column gsl_matrix_complex_const_diagonal gsl_matrix_complex_const_subdiagonal gsl_matrix_complex_const_superdiagonal gsl_matrix_complex_const_subrow gsl_matrix_complex_const_subcolumn gsl_matrix_complex_const_view_array gsl_matrix_complex_const_view_array_with_tda gsl_matrix_complex_const_view_vector gsl_matrix_complex_const_view_vector_with_tda gsl_matrix_complex_get gsl_matrix_complex_set gsl_matrix_complex_ptr gsl_matrix_complex_const_ptr gsl_matrix_complex_set_zero gsl_matrix_complex_set_identity gsl_matrix_complex_set_all gsl_matrix_complex_fread gsl_matrix_complex_fwrite gsl_matrix_complex_fscanf gsl_matrix_complex_fprintf gsl_matrix_complex_memcpy gsl_matrix_complex_swap gsl_matrix_complex_swap_rows gsl_matrix_complex_swap_columns gsl_matrix_complex_swap_rowcol gsl_matrix_complex_transpose gsl_matrix_complex_transpose_memcpy gsl_matrix_complex_isnull gsl_matrix_complex_ispos gsl_matrix_complex_isneg gsl_matrix_complex_add gsl_matrix_complex_sub gsl_matrix_complex_mul_elements gsl_matrix_complex_div_elements gsl_matrix_complex_scale gsl_matrix_complex_add_constant gsl_matrix_complex_add_diagonal gsl_matrix_complex_get_row gsl_matrix_complex_get_col gsl_matrix_complex_set_row gsl_matrix_complex_set_col /; %EXPORT_TAGS = ( all => [ @EXPORT_OK ], char => [ qw/ gsl_matrix_char_alloc gsl_matrix_char_calloc gsl_matrix_char_alloc_from_block gsl_matrix_char_alloc_from_matrix gsl_vector_char_alloc_row_from_matrix gsl_vector_char_alloc_col_from_matrix gsl_matrix_char_free gsl_matrix_char_submatrix gsl_matrix_char_row gsl_matrix_char_column gsl_matrix_char_diagonal gsl_matrix_char_subdiagonal gsl_matrix_char_superdiagonal gsl_matrix_char_subrow gsl_matrix_char_subcolumn gsl_matrix_char_view_array gsl_matrix_char_view_array_with_tda gsl_matrix_char_view_vector gsl_matrix_char_view_vector_with_tda gsl_matrix_char_const_submatrix gsl_matrix_char_const_row gsl_matrix_char_const_column gsl_matrix_char_const_diagonal gsl_matrix_char_const_subdiagonal gsl_matrix_char_const_superdiagonal gsl_matrix_char_const_subrow gsl_matrix_char_const_subcolumn gsl_matrix_char_const_view_array gsl_matrix_char_const_view_array_with_tda gsl_matrix_char_const_view_vector gsl_matrix_char_const_view_vector_with_tda gsl_matrix_char_get gsl_matrix_char_set gsl_matrix_char_ptr gsl_matrix_char_const_ptr gsl_matrix_char_set_zero gsl_matrix_char_set_identity gsl_matrix_char_set_all gsl_matrix_char_fread gsl_matrix_char_fwrite gsl_matrix_char_fscanf gsl_matrix_char_fprintf gsl_matrix_char_memcpy gsl_matrix_char_swap gsl_matrix_char_swap_rows gsl_matrix_char_swap_columns gsl_matrix_char_swap_rowcol gsl_matrix_char_transpose gsl_matrix_char_transpose_memcpy gsl_matrix_char_max gsl_matrix_char_min gsl_matrix_char_minmax gsl_matrix_char_max_index gsl_matrix_char_min_index gsl_matrix_char_minmax_index gsl_matrix_char_isnull gsl_matrix_char_ispos gsl_matrix_char_isneg gsl_matrix_char_isnonneg gsl_matrix_char_add gsl_matrix_char_sub gsl_matrix_char_mul_elements gsl_matrix_char_div_elements gsl_matrix_char_scale gsl_matrix_char_add_constant gsl_matrix_char_add_diagonal /], double => [ qw/ gsl_matrix_alloc gsl_matrix_calloc gsl_matrix_alloc_from_block gsl_matrix_alloc_from_matrix gsl_vector_alloc_row_from_matrix gsl_vector_alloc_col_from_matrix gsl_matrix_free gsl_matrix_submatrix gsl_matrix_row gsl_matrix_column gsl_matrix_diagonal gsl_matrix_subdiagonal gsl_matrix_superdiagonal gsl_matrix_subrow gsl_matrix_subcolumn gsl_matrix_view_array gsl_matrix_view_array_with_tda gsl_matrix_view_vector gsl_matrix_view_vector_with_tda gsl_matrix_const_submatrix gsl_matrix_const_row gsl_matrix_const_column gsl_matrix_const_diagonal gsl_matrix_const_subdiagonal gsl_matrix_const_superdiagonal gsl_matrix_const_subrow gsl_matrix_const_subcolumn gsl_matrix_const_view_array gsl_matrix_const_view_array_with_tda gsl_matrix_const_view_vector gsl_matrix_const_view_vector_with_tda gsl_matrix_get gsl_matrix_set gsl_matrix_ptr gsl_matrix_const_ptr gsl_matrix_set_zero gsl_matrix_set_identity gsl_matrix_set_all gsl_matrix_fread gsl_matrix_fwrite gsl_matrix_fscanf gsl_matrix_fprintf gsl_matrix_memcpy gsl_matrix_swap gsl_matrix_swap_rows gsl_matrix_swap_columns gsl_matrix_swap_rowcol gsl_matrix_transpose gsl_matrix_transpose_memcpy gsl_matrix_max gsl_matrix_minmax gsl_matrix_max_index gsl_matrix_min_index gsl_matrix_minmax_index gsl_matrix_isnull gsl_matrix_ispos gsl_matrix_isneg gsl_matrix_isnonneg gsl_matrix_add gsl_matrix_mul_elements gsl_matrix_div_elements gsl_matrix_scale gsl_matrix_add_constant gsl_matrix_add_diagonal /], int => [ qw/ gsl_matrix_int_alloc gsl_matrix_int_alloc_from_matrix gsl_matrix_int_free gsl_matrix_int_column gsl_matrix_int_superdiagonal gsl_matrix_int_view_array_with_tda gsl_matrix_int_const_submatrix gsl_matrix_int_const_diagonal gsl_matrix_int_const_subrow gsl_matrix_int_const_view_array_with_tda gsl_matrix_int_get gsl_matrix_int_ptr gsl_matrix_int_set_zero gsl_matrix_int_fread gsl_matrix_int_fscanf gsl_matrix_int_memcpy gsl_matrix_int_swap_rows gsl_matrix_int_transpose gsl_matrix_int_max gsl_matrix_int_max_index gsl_matrix_int_minmax_index gsl_matrix_int_ispos gsl_matrix_int_add gsl_matrix_int_mul_elements gsl_matrix_int_add_constant /], complex => [ qw/ gsl_matrix_complex_alloc gsl_matrix_complex_calloc gsl_matrix_complex_alloc_from_block gsl_matrix_complex_alloc_from_matrix gsl_vector_complex_alloc_row_from_matrix gsl_vector_complex_alloc_col_from_matrix gsl_matrix_complex_free gsl_matrix_complex_submatrix gsl_matrix_complex_row gsl_matrix_complex_column gsl_matrix_complex_diagonal gsl_matrix_complex_subdiagonal gsl_matrix_complex_superdiagonal gsl_matrix_complex_subrow gsl_matrix_complex_subcolumn gsl_matrix_complex_view_array gsl_matrix_complex_view_array_with_tda gsl_matrix_complex_view_vector gsl_matrix_complex_view_vector_with_tda gsl_matrix_complex_const_submatrix gsl_matrix_complex_const_row gsl_matrix_complex_const_column gsl_matrix_complex_const_diagonal gsl_matrix_complex_const_subdiagonal gsl_matrix_complex_const_superdiagonal gsl_matrix_complex_const_subrow gsl_matrix_complex_const_subcolumn gsl_matrix_complex_const_view_array gsl_matrix_complex_const_view_array_with_tda gsl_matrix_complex_const_view_vector gsl_matrix_complex_const_view_vector_with_tda gsl_matrix_complex_get gsl_matrix_complex_set gsl_matrix_complex_ptr gsl_matrix_complex_const_ptr gsl_matrix_complex_set_zero gsl_matrix_complex_set_identity gsl_matrix_complex_set_all gsl_matrix_complex_fread gsl_matrix_complex_fwrite gsl_matrix_complex_fscanf gsl_matrix_complex_fprintf gsl_matrix_complex_memcpygsl_matrix_complex_swap gsl_matrix_complex_swap_rows gsl_matrix_complex_swap_columns gsl_matrix_complex_swap_rowcol gsl_matrix_complex_transpose gsl_matrix_complex_transpose_memcpy gsl_matrix_complex_isnull gsl_matrix_complex_ispos gsl_matrix_complex_isneg gsl_matrix_complex_add gsl_matrix_complex_sub gsl_matrix_complex_mul_elements gsl_matrix_complex_div_elements gsl_matrix_complex_scale gsl_matrix_complex_add_constant gsl_matrix_complex_add_diagonal gsl_matrix_complex_get_row gsl_matrix_complex_get_col gsl_matrix_complex_set_row gsl_matrix_complex_set_col /]); =head1 NAME Math::GSL::Matrix - Mathematical functions concerning Matrices =head1 SYNOPSIS use Math::GSL::Matrix qw/:all/; my $matrix1 = Math::GSL::Matrix->new(5,5); # OO interface my $matrix2 = gsl_matrix_alloc(5,5); # standard interface =head1 Objected Oriented Interface to GSL Math::GSL::Matrix =head2 Math::GSL::Matrix->new() Creates a new Matrix of the given size. my $matrix = Math::GSL::Matrix->new(10,10); =cut sub new { my ($class, $rows, $cols) = @_; my $this = {}; my $matrix; if ( defined $rows && defined $cols && $rows > 0 && $cols > 0 && (int $rows == $rows) && (int $cols == $cols)){ $matrix = gsl_matrix_alloc($rows,$cols); } else { croak( __PACKAGE__.'::new($x,$y) - $x and $y must be positive integers'); } gsl_matrix_set_zero($matrix); $this->{_matrix} = $matrix; ($this->{_rows}, $this->{_cols}) = ($rows,$cols); bless $this, $class; } =head2 raw() Get the underlying GSL matrix object created by SWIG, useful for using gsl_matrix_* functions which do not have an OO counterpart. my $matrix = Math::GSL::Matrix->new(3,3); my $gsl_matrix = $matrix->raw; my $stuff = gsl_matrix_get($gsl_matrix, 1, 2); =cut sub raw { (shift)->{_matrix} } =head2 rows() Returns the number of rows in the matrix. my $rows = $matrix->rows; =cut sub rows { (shift)->{_rows} } =head2 cols() Returns the number of columns in the matrix. my $cols = $matrix->cols; =cut sub cols { (shift)->{_cols} } =head2 as_list() Get the contents of a Math::GSL::Matrix object as a Perl list. my $matrix = Math::GSL::Matrix->new(3,3); ... my @matrix = $matrix->as_list; =cut sub as_list { my $self = shift; my $line; my @part; my @total; for($line=0; $line<$self->rows; $line++){ @part = map { gsl_matrix_get($self->raw, $line, $_) } (0 .. $self->cols-1 ); push(@total, @part); } return @total; } =head2 row() Returns a row matrix of the row you enter. my $matrix = Math::GSL::Matrix->new(3,3); ... my $matrix_row = $matrix->row(0); =cut sub row { my ($self, $row) = @_; croak (__PACKAGE__.'::$matrix->row($row) - invalid $row value') unless (($row < $self->rows) and $row >= 0); my $rowmat = Math::GSL::Matrix->new(1,$self->cols); my @got; for my $n (0 .. $self->cols-1) { push (@got, gsl_matrix_get($self->raw, $row, $n)); } for my $n (0 .. $self->cols-1) { gsl_matrix_set($rowmat->raw, 0, $n, $got[$n]); } return $rowmat; } =head2 col() Returns a col matrix of the column you enter. my $matrix = Math::GSL::Matrix->new(3,3); ... my $matrix_col = $matrix->col(0); =cut sub col { my ($self, $col) = @_; croak (__PACKAGE__."::\$matrix->col(\$col) - $col not a valid column") unless ($col < $self->cols and $col >= 0); my $colvec = Math::GSL::Vector->new($self->cols); my $colmat = Math::GSL::Matrix->new($self->rows, 1); my @got; for my $n (0 .. $self->rows-1) { push (@got, gsl_matrix_get($self->raw, $n, $col)); } for my $n (0 .. $self->rows-1) { gsl_matrix_set($colmat->raw, $n, 0, $got[$n]); } return $colmat; } =head2 set_row() Sets a the values of a row with the elements of an array. my $matrix = Math::GSL::Matrix->new(3,3); $matrix->set_row(0, [8, 6, 2]); You can also set multiple rows at once with chained calls: my $matrix = Math::GSL::Matrix->new(3,3); $matrix->set_row(0, [8, 6, 2]) ->set_row(1, [2, 4, 1]); ... =cut sub set_row { my ($self, $row, $values) = @_; my $length = $#$values; die __PACKAGE__.'::new($x, $values) - $values must be a nonempty array reference' if $length == -1; die __PACKAGE__.'::set_row($x, $values) - $x must be a valid row number' if ($row < 0 || $row >= $self->rows); die __PACKAGE__.'::set_row($x, $values) - $values must contains the same number of elements as there is columns in the matrix' if($length != $self->cols-1); map { gsl_matrix_set($self->raw, $row, $_, $values->[$_]) } (0..$length); return $self; } =head2 set_col() Sets a the values of a column with the elements of an array. my $matrix = Math::GSL::Matrix->new(3,3); $matrix->set_col(0, [8, 6, 2]); You can also set multiple columns at once with chained calls: my $matrix = Math::GSL::Matrix->new(3,3); $matrix->set_col(0, [8, 6, 2]) ->set_col(1, [2, 4, 1]); ... =cut sub set_col { my ($self, $col, $values) = @_; my $length = $#$values; die __PACKAGE__.'::new($x, $values) - $values must be a nonempty array reference' if $length == -1; die __PACKAGE__.'::set_row($x, $values) - $x must be a valid column number' if ($col < 0 || $col >= $self->cols); die __PACKAGE__.'::set_row($x, $values) - $values must contains the same number of elements as there is rowss in the matrix' if($length != $self->rows-1); map { gsl_matrix_set($self->raw, $_, $col, $values->[$_]) } (0..$length); return $self; } =head1 DESCRIPTION Here is a list of all the functions included in this module : =over 1 =item C - Return a gsl_matrix of $i rows and $j columns =item C - Return a gsl_matrix of $i rows and $j columns and initialize all of the elements of the matrix to zero =item C - =item C - =item C - =item C - =item C - =item C - Return a matrix view of the matrix $m. The upper-left element of the submatrix is the element ($k1,$k2) of the original matrix. The submatrix has $n1 rows and $n2 columns. =item C - Return a vector view of the $i-th row of the matrix $m =item C - Return a vector view of the $j-th column of the matrix $m =item C - Return a vector view of the diagonal of the vector. The matrix doesn't have to be square. =item C - Return a vector view of the $k-th subdiagonal of the matrix $m. The diagonal of the matrix corresponds to k=0. =item C - Return a vector view of the $k-th superdiagonal of the matrix $m. The matrix doesn't have to be square. =item C - Return a vector view of the $i-th row of the matrix $m beginning at offset elements and containing n elements. =item C - Return a vector view of the $j-th column of the matrix $m beginning at offset elements and containing n elements. =item C - This function returns a matrix view of the array reference $base. The matrix has $n1 rows and $n2 columns. The physical number of columns in memory is also given by $n2. Mathematically, the (i,j)-th element of the new matrix is given by, m'(i,j) = $base->[i*$n2 + j] where the index i runs from 0 to $n1-1 and the index j runs from 0 to $n2-1. The new matrix is only a view of the array reference $base. When the view goes out of scope the original array reference $base will continue to exist. The original memory can only be deallocated by freeing the original array. Of course, the original array should not be deallocated while the view is still in use. =item C - This function returns a matrix view of the array reference $base with a physical number of columns $tda which may differ from the corresponding dimension of the matrix. The matrix has $n1 rows and $n2 columns, and the physical number of columns in memory is given by $tda. Mathematically, the (i,j)-th element of the new matrix is given by, m'(i,j) = $base->[i*$tda + j] where the index i runs from 0 to $n1-1 and the index j runs from 0 to $n2-1. The new matrix is only a view of the array reference $base. When the view goes out of scope the original array reference $base will continue to exist. The original memory can only be deallocated by freeing the original array. Of course, the original array should not be deallocated while the view is still in use. =item C - =item C - =item C - =item C - Return the (i,j)-th element of the matrix $m =item C - Set the value of the (i,j)-th element of the matrix $m to $x =item C - =item C - =item C - Set all the elements of the matrix $m to zero =item C - Set the elements of the matrix $m to the corresponding elements of the identity matrix =item C - Set all the elements of the matrix $m to the value $x =item C - Read a file which has been written with gsl_matrix_fwrite from the stream $fh opened with the gsl_fopen function from the Math::GSL module and stores the data inside the matrix $m =item C - Write the elements of the matrix $m in binary format to a stream $fh opened with the gsl_fopen function from the Math::GSL module =item C - Read a file which has been written with gsl_matrix_fprintf from the stream $fh opened with the gsl_fopenfunction from the Math::GSL module and stores the data inside the matrix $m =item C - Write the elements of the matrix $m in the format $format (for example "%f" is the format for double) to a stream $fh opened with the gsl_fopen function from the Math::GSL module =item C - Copy the elements of the matrix $src to the matrix $dest. The two matrices must have the same size. =item C - Exchange the elements of the matrices $m1 and $m2 by copying. The two matrices must have the same size. =item C - Exchange the $i-th and $j-th row of the matrix $m. The function returns 0 if the operation suceeded, 1 otherwise. =item C - Exchange the $i-th and $j-th column of the matrix $m. The function returns 0 if the operation suceeded, 1 otherwise. =item C - Exchange the $i-th row and the $j-th column of the matrix $m. The matrix must be square. The function returns 0 if the operation suceeded, 1 otherwise. =item C - This function replaces the matrix m by its transpose by copying the elements of the matrix in-place. The matrix must be square for this operation to be possible. =item C - Make the matrix $dest the transpose of the matrix $src. This function works for all matrices provided that the dimensions of the matrix dest match the transposed dimensions of the matrix src. =item C - Return the maximum value in the matrix $m =item C - Return the minimum value in the matrix $m =item C - Return two values, the first is the minimum value of the Matrix $m and the second is the maximum of the same the same matrix. =item C - Return two values, the first is the the i indice of the maximum value of the matrix $m and the second is the j indice of the same value. =item C - Return two values, the first is the the i indice of the minimum value of the matrix $m and the second is the j indice of the same value. =item C - Return four values, the first is the i indice of the minimum of the matrix $m, the second is the j indice of the same value, the third is the i indice of the maximum of the matrix $m and the fourth is the j indice of the same value =item C - Return 1 if all the elements of the matrix $m are zero, 0 otherwise =item C - Return 1 if all the elements of the matrix $m are strictly positve, 0 otherwise =item C - Return 1 if all the elements of the matrix $m are strictly negative, 0 otherwise =item C - Return 1 if all the elements of the matrix $m are non-negatuive, 0 otherwise =item C - Add the elements of matrix $b to the elements of matrix $a =item C - Subtract the elements of matrix $b from the elements of matrix $a =item C - Multiplie the elements of matrix $a by the elements of matrix $b =item C - Divide the elements of matrix $a by the elements of matrix $b =item C - Multiplie the elements of matrix $a by the constant factor $x =item C - Add the constant value $x to the elements of the matrix $a =item C - Add the constant value $x to the elements of the diagonal of the matrix $a =item C - Copy the elements of the $i-th row of the matrix $m into the vector $v. The lenght of the vector must be of the same as the lenght of the row. The function returns 0 if it succeded, 1 otherwise. =item C - Copy the elements of the $j-th column of the matrix $m into the vector $v. The lenght of the vector must be of the same as the lenght of the column. The function returns 0 if it succeded, 1 otherwise. =item C - Copy the elements of vector $v into the $i-th row of the matrix $m The lenght of the vector must be of the same as the lenght of the row. The function returns 0 if it succeded, 1 otherwise. =item C - Copy the elements of vector $v into the $j-th row of the matrix $m The lenght of the vector must be of the same as the lenght of the column. The function returns 0 if it succeded, 1 otherwise. =back The following functions are specific to matrices containing complex numbers : =over 1 =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =back These are related to constant views of a matrix. =over 1 =item C =item C =item C =item C =item C =item C =item C =item C =item C =back The following functions are similar to those above but work with C's and C's. We are not quite sure if anyone wants these. Please speak up if you do and/or submit some patches to this documentation, please! =over 1 =item gsl_matrix_const_view_vector =item gsl_matrix_const_view_vector_with_tda =item gsl_matrix_char_alloc =item gsl_matrix_char_calloc =item gsl_matrix_char_alloc_from_block =item gsl_matrix_char_alloc_from_matrix =item gsl_vector_char_alloc_row_from_matrix =item gsl_vector_char_alloc_col_from_matrix =item gsl_matrix_char_free =item gsl_matrix_char_submatrix =item gsl_matrix_char_row =item gsl_matrix_char_column =item gsl_matrix_char_diagonal =item gsl_matrix_char_subdiagonal =item gsl_matrix_char_superdiagonal =item gsl_matrix_char_subrow =item gsl_matrix_char_subcolumn =item gsl_matrix_char_view_array =item gsl_matrix_char_view_array_with_tda =item gsl_matrix_char_view_vector =item gsl_matrix_char_view_vector_with_tda =item gsl_matrix_char_const_submatrix =item gsl_matrix_char_const_row =item gsl_matrix_char_const_column =item gsl_matrix_char_const_diagonal =item gsl_matrix_char_const_subdiagonal =item gsl_matrix_char_const_superdiagonal =item gsl_matrix_char_const_subrow =item gsl_matrix_char_const_subcolumn =item gsl_matrix_char_const_view_array =item gsl_matrix_char_const_view_array_with_tda =item gsl_matrix_char_const_view_vector =item gsl_matrix_char_const_view_vector_with_tda =item gsl_matrix_char_get =item gsl_matrix_char_set =item gsl_matrix_char_ptr =item gsl_matrix_char_const_ptr =item gsl_matrix_char_set_zero =item gsl_matrix_char_set_identity =item gsl_matrix_char_set_all =item gsl_matrix_char_fread =item gsl_matrix_char_fwrite =item gsl_matrix_char_fscanf =item gsl_matrix_char_fprintf =item gsl_matrix_char_memcpy =item gsl_matrix_char_swap =item gsl_matrix_char_swap_rows =item gsl_matrix_char_swap_columns =item gsl_matrix_char_swap_rowcol =item gsl_matrix_char_transpose =item gsl_matrix_char_transpose_memcpy =item gsl_matrix_char_max =item gsl_matrix_char_min =item gsl_matrix_char_minmax =item gsl_matrix_char_max_index =item gsl_matrix_char_min_index =item gsl_matrix_char_minmax_index =item gsl_matrix_char_isnull =item gsl_matrix_char_ispos =item gsl_matrix_char_isneg =item gsl_matrix_char_isnonneg =item gsl_matrix_char_add =item gsl_matrix_char_sub =item gsl_matrix_char_mul_elements =item gsl_matrix_char_div_elements =item gsl_matrix_char_scale =item gsl_matrix_char_add_constant =item gsl_matrix_char_add_diagonal =item gsl_matrix_int_alloc =item gsl_matrix_int_calloc =item gsl_matrix_int_alloc_from_block =item gsl_matrix_int_alloc_from_matrix =item gsl_vector_int_alloc_row_from_matrix =item gsl_vector_int_alloc_col_from_matrix =item gsl_matrix_int_free =item gsl_matrix_int_submatrix =item gsl_matrix_int_row =item gsl_matrix_int_column =item gsl_matrix_int_diagonal =item gsl_matrix_int_subdiagonal =item gsl_matrix_int_superdiagonal =item gsl_matrix_int_subrow =item gsl_matrix_int_subcolumn =item gsl_matrix_int_view_array =item gsl_matrix_int_view_array_with_tda =item gsl_matrix_int_view_vector =item gsl_matrix_int_view_vector_with_tda =item gsl_matrix_int_const_submatrix =item gsl_matrix_int_const_row =item gsl_matrix_int_const_column =item gsl_matrix_int_ptr =item gsl_matrix_int_const_ptr =item gsl_matrix_int_set_zero =item gsl_matrix_int_set_identity =item gsl_matrix_int_set_all =item gsl_matrix_int_fread =item gsl_matrix_int_fwrite =item gsl_matrix_int_fscanf =item gsl_matrix_int_fprintf =item gsl_matrix_int_memcpy =item gsl_matrix_int_swap =item gsl_matrix_int_swap_rows =item gsl_matrix_int_swap_columns =item gsl_matrix_int_swap_rowcol =item gsl_matrix_int_transpose =item gsl_matrix_int_transpose_memcpy =item gsl_matrix_int_max =item gsl_matrix_int_min =item gsl_matrix_int_minmax =item gsl_matrix_int_max_index =item gsl_matrix_int_min_index =item gsl_matrix_int_minmax_index =item gsl_matrix_int_isnull =item gsl_matrix_int_ispos =item gsl_matrix_int_isneg =item gsl_matrix_int_isnonneg =item gsl_matrix_int_add =item gsl_matrix_int_sub =item gsl_matrix_int_mul_elements =item gsl_matrix_int_div_elements =item gsl_matrix_int_scale =item gsl_matrix_int_add_constant =item gsl_matrix_int_add_diagonal =back You have to add the functions you want to use inside the qw /put_funtion_here /. You can also write use Math::GSL::Matrix qw/:all/ to use all avaible functions of the module. Other tags are also avaible, here is a complete list of all tags for this module : =over 1 =item C =item C =item C =item C =item C =back For more informations on the functions, we refer you to the GSL offcial documentation L Tip : search on google: site:http://www.gnu.org/software/gsl/manual/html_node/name_of_the_function_you_want =head1 EXAMPLES Most of the examples from this section are perl versions of the examples at L The program below shows how to allocate, initialize and read from a matrix using the functions gsl_matrix_alloc, gsl_matrix_set and gsl_matrix_get. use Math::GSL::Matrix qw/:all/; my $m = gsl_matrix_alloc (10,3); for my $i (0..9){ for my $j (0..2){ gsl_matrix_set($m, $i, $j, 0.23 + 100*$i + $j); } } for my $i (0..99){ # OUT OF RANGE ERROR for my $j (0..2){ print "m($i, $j) = " . gsl_matrix_get ($m, $i, $j) . "\n"; } } gsl_matrix_free ($m); use Math::GSL::Matrix qw/:all/; my $m = gsl_matrix_alloc (100, 100); my $a = gsl_matrix_alloc (100, 100); for my $i (0..99){ for my $j (0..99){ gsl_matrix_set ($m, $i, $j, 0.23 + $i + $j); } } The next program shows how to write a matrix to a file. my $out = gsl_fopen("test.dat", "wb"); gsl_matrix_fwrite ($out, $m); gsl_fclose ($out); my $in = gsl_fopen("test.dat", "rb"); gsl_matrix_fread ($in, $a); gsl_fclose($in); my $k=0; for my $i (0..99){ for my $j (0..99){ $mij = gsl_matrix_get ($m, $i, $j); $aij = gsl_matrix_get ($a, $i, $j); $k++ if ($mij != $aij); } } gsl_matrix_free($m); gsl_matrix_free($a); print "differences = $k (should be zero)\n"; =head1 AUTHORS Jonathan Leto and Thierry Moisan =head1 COPYRIGHT AND LICENSE Copyright (C) 2008 Jonathan Leto and Thierry Moisan This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;