this likely is more applicable to discussion but i tried that and it said no forums exist and next tried it another way and gave me the message you do not have permission...
Anyway for example i have a 2 dimensional array , call it an , and the second dimension is the same as a one dimensional array i already have, call it i1 , and i always want all of the elements in that 2nd dimension to be the same as i1 so the obvious way or best way i can think of to assign values to an is to call it with the first dimension index only and use like an[k]:i1 so that an[k,1] is i1[1],an[k,2] is i1[2]....an[k,2nd dimension] is last(array(i1) automatically without having to do it all one by one but i get error message as might be expected that i called a 2 dim array with only one index instead of 2. Next tried fillarray(an[k],i1) and got the same error message. NOw surely there must be a more efficient way of doing what i want without doing it all one by one such as an[k,1] : i1[1],an[k,2] : i1[2]....an[k,2nd dimension]:i1[2nd dimension] or even doing all that in a do loop. Surely there must be a better way but what is it ?
oh now i just discovered something. No matter how many dimensions an array may have when use fillarray(...) u don't put in any indexes to the .... but must put in a list or array of length the entire dim 1 times dim 2 of the array for example in the case of a 2 dim. array but still this is inefficient way to do what i want. So don't use fillarray in general but for say the first time initialization.
also it seems that if i want an array of type fixnum then if i use eg array(an,fixnum,4,5) it actually makes both numbers 1 more than i put because i guess it goes from 0 thru dim rather than 1 thru dim. ? But if use an:make_array(fixnum,4,5). or arraymake... it gives the dim's with the same i put that is as if they are both 1 thru dim. rather than 0 thru dim.. is that correct ? Why is that ?
Please write crisper problem reports.
And please write separate reports for separate issues.
The first one is about filling arrays.
The second is about array dimensions.
is there an array make or whatever that makes it for 1 thru d not starting at 0 and whenever i assign to the array it does it correct as if it started at index 1. Right now it seems there is not because if assign to the last of it for example it says the index must be less than the dimension. it is really a pain to have to go thru adjusting everything so the indexes are as the same as they would be as say as expected such as in Fortran that is starting at 1 not 0 as in say basic computer language
Some languages start array indexes at 0; others at 1.
In Maxima, some array types start indexes at 0; others at 1.
This is documented.
ok so now what about the main issue i said first about filling or assigning values to a more than one dimensional array. is there a more efficient way - see my original issue
ok in maxima i am talking about specifically declared arrays of type fixnum the only possibilities are array(an,fixnum,2,5) and an:make_array(fixnum,2,5) which both start at 0 so i guess this is a feature request.
I suggest you close this issue and open a new one which describes exactly what you want precisely and concisely, with an example.
Ok the main issue was assigning to the 2 dim. array. Now i have just made it a one dim. array and just made each entry there a declared one dim. fixnum array instead of using a 2 dim. array. For the same program it ran about 2 times as fast and took about 1/3 as much memory as listed in the standard output of wxmaxima. And both outputs, 2 dim. array vs one dim. array with a fixnum array for each input, were exactly the same by the length(listarray...) command and same indexing.