Skip to content

Commit ff06faa

Browse files
committed
Changed code due to changes in Cwrapper, started spec
1 parent 5c739d1 commit ff06faa

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

ext/symengine/ruby_matrix.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ VALUE cmatrix_dense_init(VALUE self, VALUE args)
119119
counter++;
120120
}
121121
}
122-
dense_matrix_set_vec(this, rows, cols, cargs);
122+
this = dense_matrix_new_vec(rows, cols, cargs);
123123

124124
basic_free_stack(x);
125125
vecbasic_free(cargs);
@@ -544,7 +544,7 @@ VALUE cmatrix_dense_FFLDU(VALUE self)
544544
VALUE result_u;
545545
cresult_u = dense_matrix_new();
546546

547-
dense_matrix_LDL(cresult_l, cresult_d, this);
547+
dense_matrix_FFLDU(cresult_l, cresult_d, cresult_u, this);
548548

549549
result_l = Data_Wrap_Struct(c_dense_matrix, NULL, dense_matrix_free,
550550
cresult_l);

ext/symengine/ruby_utils.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ VALUE cutils_sympify(VALUE self, VALUE operand)
88

99
if(strcmp(s, "Array") == 0) {
1010

11-
CDenseMatrix *mat_result = dense_matrix_new();
11+
CDenseMatrix *mat_result;
1212
int counter = 0;
1313

1414
int rows = RARRAY_LEN(operand);
@@ -40,7 +40,7 @@ VALUE cutils_sympify(VALUE self, VALUE operand)
4040
}
4141
}
4242

43-
dense_matrix_set_vec(mat_result, rows, cols, cargs);
43+
mat_result = dense_matrix_new_vec(rows, cols, cargs);
4444

4545
basic_free_stack(x);
4646
vecbasic_free(cargs);

spec/matrix_spec.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
describe SymEngine::DenseMatrix do
2+
describe 'convert' do
3+
subject { SymEngine([[1, 2],[3, 4]]) }
4+
5+
it { is_expected.to be_a SymEngine::DenseMatrix }
6+
its(:to_s) { is_expected.to eq "[1, 2]\n[3, 4]\n" }
7+
end
8+
9+
describe 'dense_matrix functions' do
10+
subject { SymEngine([[4, 3],[3, 2]]) }
11+
12+
its(:inv) { is_expected.to be_a SymEngine::DenseMatrix }
13+
its(:inv) { is_expected.to eq SymEngine([[-2, 3],[3, -4]]) }
14+
15+
its(:FFLU) { is_expected.to be_a SymEngine::DenseMatrix }
16+
its(:FFLU) { is_expected.to eq SymEngine([[4, 3],[3, -1]]) }
17+
18+
#its(:LU) { is_expected.to eq [SymEngine([[1, 0],[3/4, 1]]), SymEngine([[4, 3],[0, -1/4]])] }
19+
20+
21+
end
22+
23+
end

0 commit comments

Comments
 (0)