| Bill Allombert on Sun, 07 Mar 2004 20:26:23 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Matrix initialization in Library mode |
On Wed, Mar 03, 2004 at 03:47:19PM +0100, Mikael Johansson wrote:
> So, once I've allocated my matrix, say
>
> GEN dell=cgetg(first_size+1,t_MAT);
> for(long j=1; j<=first_size; j++) {
> dell[j]=lgetg(second_size+1,t_COL);
>
> how do I actually fiddle with the elements? Upon trying to
>
> dell[first_index+1][second_index+1]=stoi(value);
>
> all I receive is a compile error:
> homology.c:220: invalid types `long int[int]' for array subscript
[Are you using a C++ compiler ? This warning seems odd.]
You have to cast data correctly. The customary way is to do
mael(dell,first_index+1,second_index+1)=(long) stoi(value)
or
coeff(dell,second_index+1,first_index+1)=(long) stoi(value)
where mael and coeff are macros.
Though it you data are small integers, you are likely to be better off
using
GEN dell=cgetg(first_size+1,t_VEC);
for(long j=1; j<=first_size; j++) {
dell[j]=lgetg(second_size+1,t_VECSALL);
and use the Flv_/Flm_ interface.
Cheers,
Bill.