OK, so basically I was doing the rank wrong. Thanks. I wish I understood verb rank well enough to understand why I was doing it wrong. I was trying to make a list of pages. Basically, I was trying to make a rank 3 list of rank 2 page images. I could have made a vector of boxed images but they were all the same. Through trial and error I ended up initializing with
recordtables =: 0 0 0 $ '' and adding pages with recordtables =: recordtables,,: ((tabprint table),"1 (tabprint xtable)) but I get the feeling that if I really understood verb ranks I could do it with fewer operators. Maybe what I am doing is optimum. On Sat, Dec 23, 2017 at 12:52 PM, Henry Rich <henryhr...@gmail.com> wrote: > To modify acolumn: > > 97 98 99 (2})"0 1 i. 3 3 > > 0 1 97 > > 3 4 98 > > 6 7 99 > > > Henry Rich > > > > > On 12/23/2017 12:48 PM, Nick S wrote: > >> I have a 3d array that is the formatted output of a table. I capture >> snapshots of it at different points in my processing, in a rank 3 array. I >> want to flip between pages to see how the processing progresses. I >> thought >> I would clear the screen, then display the output, that being one of the >> stacked sheets. Can someone point me in the right direction? I have >> researched this for hours and just can't find the right manual or google. >> >> Now, I manipulate this table column by column and row by row, Somewhere I >> read that amend would update anything that from would fetch. But I find >> that to be wrong. >> >> I was able to fetch a row of my table with >> >> buildline =: (<: | y){table >> >> >> and a column with >> >> >> buildline =: (y){"1 table >> >> >> but >> >> >> table =: bitvector (y)}"1 table >> >> >> would not work. >> >> I can update a row with >> >> table =: (accumand)(<: | y) } table >> >> >> but the column is more difficult. I came up with two approaches. One way >> was to transpose the table, update what was now a row, and then transpose >> the result. >> >> >> table =: |: (accumand) (y) } |:table >> >> >> What I settled on was to build a boxed set of coordinates >> >> >> table =: (accumand) (<(i.tsize);y) } table >> >> >> >> it probably does not matter for my application, we are talking, at the >> largest, 20x20 boolean arrays. I am wondering if I need to throw around >> more data. >> >> >> >> (The above is the limit of my questions.) >> >> (y can be a zero or positive scalar, indicating a column, or a scalar from >> -tsize to _1 - (generated with }:i: tsize) which indicates a row. >> >> >> For further information, the program solves one of those solitare games >> where you have a series of numbers, and you get numbers for every row and >> every column. Suppose that the numbers for column 1 were 8,3,4, this >> regular expression would have to match: >> >> >> >> >> ^0*1{8,8}0+1{3,3}0+1{4,4}0*$ >> >> >> Table size is fixed based on the puzzle, but can vary between 5 and 20. >> >> >> Anyway, I did a lot of if. then. else. stuff because my first simple >> version of the program took over 700 seconds to do one round of >> calculations on a single row or column and the most rounds I have seen a >> puzzle take is 17 iterations before it could place all the marks, and with >> aggressive early pruning, I was able to get about 2 orders of magnitude >> improvement. I process 400 rows+columns in under 2 seconds. If you have >> a line where the numbers are, say, 1 1 1 1 1 1, it would generate >> thousands >> of potential solutions, which would result in naught if there were no >> other >> constraints - so I prune those cases - I don't process those lines until I >> detect a constraint on that line because without a constraint I will not >> learn anything. >> >> >> On a personal note, I find that I can get obsessed with solitare games to >> the exclusion of everything else I want to do. It helps to break the >> obsession if I write a solver. >> >> >> >> > > > --- > This email has been checked for viruses by AVG. > http://www.avg.com > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm -- Of course I can ride in the carpool lane, officer. Jesus is my constant companion. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm