bbdd
This commit is contained in:
@@ -661,16 +661,16 @@ Unify _NElems_ with the type of the elements in _Matrix_.
|
||||
X <== matrix( L, [dim=Dims,base=Bases] ).
|
||||
( X <== '[]'(Dims0, array) of ints ) :- !,
|
||||
foldl( norm_dim, Dims0, Dims, Bases, 1, _Size ),
|
||||
matrix_new( ints , Dims, X ),
|
||||
matrix_new( ints , Dims, _, X ),
|
||||
matrix_base(X, Bases).
|
||||
( X <== '[]'(Dims0, array) of floats ) :-
|
||||
atom(X), !,
|
||||
foldl( norm_dim, Dims0, _Dims, _Bases, 1, Size ),
|
||||
static_array( X, Size, [float] ).
|
||||
( X <== '[]'(Dims0, array) of floats ) :- !,
|
||||
foldl( norm_dim, Dims0, Dims, Bases, 1, _Size ),
|
||||
matrix_new( floats , Dims, X ),
|
||||
matrix_new( floats , Dims,_, X ),
|
||||
matrix_base(X, Bases).
|
||||
( X <== '[]'(Dims0, static.array) of floats ) :-
|
||||
atom(X), !,
|
||||
foldl( norm_dim, Dims0, Dims, Bases, 1, _Size ),
|
||||
static_array( Size, floats, X ).
|
||||
( X <== '[]'(Dims0, array) of (I:J) ) :- !,
|
||||
foldl( norm_dim, Dims0, Dims, Bases, 1, Size ),
|
||||
matrix_seq(I, J, Dims, X),
|
||||
@@ -817,6 +817,10 @@ rhs(S, NS) :-
|
||||
|
||||
set_lhs(V, R) :- var(V), !, V = R.
|
||||
set_lhs(V, R) :- number(V), !, V = R.
|
||||
set_lhs(V, R) :- atom(V), !,
|
||||
static_array_properties(V, N, _),
|
||||
N1 is N-1,
|
||||
foreach(I in 0..N1, V[I] <== R[I]).
|
||||
set_lhs('[]'([Args], floats(RHS)), Val) :-
|
||||
!,
|
||||
integer(RHS),
|
||||
@@ -973,25 +977,6 @@ mtimes(I1, I2, V) :-
|
||||
% three types of matrix: integers, floats and general terms.
|
||||
%
|
||||
|
||||
matrix_new(terms.terms,Dims, '$matrix'(Dims, NDims, Size, Offsets, Matrix) ) :-
|
||||
length(Dims,NDims),
|
||||
foldl(size, Dims, 1, Size),
|
||||
maplist(zero, Dims, Offsets),
|
||||
functor( Matrix, c, Size).
|
||||
matrix_new(opaque.ints,Dims,Matrix) :-
|
||||
length(Dims,NDims),
|
||||
new_ints_matrix_set(NDims, Dims, 0, Matrix).
|
||||
matrix_new(opaque.floats,Dims,Matrix) :-
|
||||
length(Dims,NDims),
|
||||
new_floats_matrix_set(NDims, Dims, 0.0, Matrix).
|
||||
|
||||
|
||||
matrix_new(array.Type(Size), Dims, Data, '$array'(Id) ) :-
|
||||
length(Dims,NDims),
|
||||
foldl(size, Dims, 1, Size),
|
||||
maplist(zero, Dims, Offsets),
|
||||
functor( Matrix, c, Size),
|
||||
new_array(Size,Type,Dims,Data),
|
||||
matrix_new(terms, Dims, Data, '$matrix'(Dims, NDims, Size, Offsets, Matrix) ) :-
|
||||
length(Dims,NDims),
|
||||
foldl(size, Dims, 1, Size),
|
||||
@@ -1058,7 +1043,7 @@ add_index_prefix( [L|Els0] , H ) --> [[H|L]],
|
||||
add_index_prefix( Els0 , H ).
|
||||
|
||||
|
||||
matrix_set_range( Mat, Pos, Els) :-
|
||||
matrix_set( Mat, Pos, Els) :-
|
||||
slice(Pos, Keys),
|
||||
maplist( matrix_set(Mat), Keys, Els).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user