7 years, 37 days

## I will...

@Carl Love  Thanks.

FullDeg is much better,  Thank you.

nterms is the function in my answer "Example of parms".  It uses nIs and deg as in the answer.  Since it can be calculated using nIs and deg, I don't see the point of having it as an input parameter.

Doable -  I also think so, that is the reason I asked for help on Grid-Seq in another post.

The situation after two hours running can be seen below: Rolling large chunks - We will definitely need that.  Cubic - Binomial(60,30) = 118264581564861424.  No way!

Since we need all indeterminates presented in index i, can we divide the problem? Binomial(20,?)*Bonomial(20,??)*Binomial(20,???) where ?+??+??? is the n of the tuple we need to find.

## example...

@Carl Love Only writing the examples (the two pdfs) is that I realized that Nonlinear meant nonlinear with a certain degree.

Example1: (Properties_Cubic_3Dforms.pdf):  The highest degree of the polynomial in that example is 3 and the first element to have it is element number 10:  x^3. if I set Nonlinear to 4, the quadratic models will be part of the result.  I don't need them anymore, Symmetries.mw, as it is, gives me all of them.

Example2:(Properties_Quad_4Dfroms.pdf): The highest degree of the polynomial is 2 and the first element to have it is element number 5: wˆ2.

I think

`nterms(nIs,deg-1)`

shows exactly that.

1. Agreed.
2. No, we have to come up with a better name.  Perhaps Full-D form (short for full dimensional form).
3. Great.  I was thinking if SubsetsI contains all subsets of sizes 1..nIs-1, would condition 6 encompass condition 5?

I left the Linux box running the worst-case scenario, that is, 15-tuple.

## sorry....

@Carl Love I edited my previous msg.

Yes, I meant "real time"> 90.

## unfortunately not...

@Carl Love I see. I will send my comments soon.

Unfortunately, Nonlinear is not always equal to nIs +1.  It depends on the degree.   In the first pdf Nonlinear=10 whereas, in the second pdf, Nonlinear=5 (only in this case it is equal to  nIs+1).  I think Nonlinear is given by

`nterms(nIs,deg-1)`

The attempt here is to choose the first nonlinear term with degree = deg.

Linux - The new implementation worked without showing any msg.  Is there a problem with the Linux version of Maple? The Linux server took more than 90 minutes to finish the job.  I was expecting that it would take less time to finish it.

## more on name the conditions...

@Carl Love I think "many thanks" is a cliche but now.  I can't  thank you enough.

1. `#I-D:I``#I-D:J` have to do with all valid systems showing all indeterminates. If it is a four dimension system, I will need that x,y,z and w are in the i's and the j's.  I can't think of better names: Valid-I, Valid-J?
2. I am glad to finally sending something useful.
3. I am running the new symmetry right now.  As soon as some results are out, I will let you know. Puny machines are the macs I have on my desk!
4. Okay.
5. Okay. I am afraid to mess up such a fine piece of code but comments if needed I will add them for sure.

Best answer - I will.  Many thanks for reminding me.

Symmetry - You've already done - conds.

Observation:

1. In thinking of how to name the conditions and preparing the pdfs, I realized that NoPair does not cover all cases.  For nIs=4, I need to test triplets as well as pairs.

Properties_Cubic_3Dforms.pdf

## Example of parms...

@Carl Love Many thanks again.

Re: Re: Homorbital - What I meant was that your definition makes sense to me. I wasn't aware of the term homorbital.

Re: Re: counterparts - I wasn't thiking of what is removed but what wasn't part of the solution.  What you did was exactly what I have in mind when sending the post to the list.  Many many thanks. Without your solution I would never be able to further test the sets  (see answer to your question parms).

Re: Re: arguments: Excellent! Many thanks.

parms -  Yes, there will always be two indices. Yes, the first index is always \$1..nIs. See if the piece of code given below can be of help.

```nIs:=4;  # Number of indeterminates (coordinates,variables,states)
deg:=2;  # degree
nterms:=(i,j) -> combinat:-numbcomb(i+j,j): # Number of elements
n:=nterms(nIs,deg);
parms:={seq(seq([i,j], i= 1..nIs), j= 0..(n-1))}
```

Conditions - Please change the names if you want to (I am afraid I will have to use technical terms here)

Condition 1 - Always use all indeterminates (coordinates or system states) -> All

Condition 2 - Always Nonlinear -> Nonlinear

Condition 3 -  Two sets of coordinates cannot have the same equation  - Different

Condiiton 4 - [i,j] - In an i,j, j cannot contain only indeterminates related to i - nIs-D form I

Condition 5- [i,j]  - j must cover all indeterminates - nIs-D form J

Condition 6 - [i,j] - no j's in pairs - No pairwise indeterminates

Condition 7 - Avoid symmetry - Symmetry

Tables of sets for conditions 4-6 - If you allow me I can send you a pdf that shows a table for the cubic system. Meanwhile I would have to work in another example.

Symmetries.mw - Many thanks.  I will test it in the linux machine and let you know how it goes.

Edit 1:  An error msg came out when running symmetries (linux). ## Question about the new code...

@Carl Love Many thanks for the code with all 6 conditions.  I knew it that you would take my sloppy code and transform it into a single line.  Light years beyond my skills.

Odd situation:  (Mac)  The first time I run the code, it did not finish up for n=4. That usually takes little time to finish.  I quitted Maple on my mac and. run the code again.  This time it worked for n=4, n=7, ...

Linux:  Please see the messages below. Question:

1. nIs, the tables and their number in permutations_by_index, TS_5t, T6, parms and {0,1,4}, {0,2,7}, {0,3,9} (the numbers of set can also change)   are problem-dependent. Can they be made arguments as n

## very clear...

@Carl Love Thank you ever so much for the thorough explanation.   The permutation concept and ist implication are now much clear.   I wasn't aware of the homorbital definition.  I think my main problem is with computation aspects of it.  cache and remember are not "natural" to me.  I wouldn't know how to use them.  (As usual, I need time to go through it slowly).

Condition 6 - if by counterpart you mean the result of conds (symmetry), the answer is yes. If even the counterpart is no removed right way, Condition 6 will remove it later on.  (I would rather have it removed now than later).

## 3 changed to a more strict condition...

@Carl Love I am trying some ideas so I would say that it is no longer needed.

Yes, condition 5  being false automatically disqualifies the counterpart of S.

Condition 6 (I think it encompasses Condition 1)

```TS:=table([0={},1={1},2={2},3={3},4={1},5={1,2},6={1,3},7={2},8={2,3},9={3}]),  # T

# valid 3d forms

valid3Dforms := proc(S::set,T::table,Is::set)
description "This functions returns true for a valid 3D form.";
local i,j,res,newTi,newTj;
if Is = op~(1,S) then  # Condition 1
i:=op~(1,convert(S,list));
j:=op~(2,convert(S,list));
newTi:=table([1={ListTools:-SearchAll(1,i)},2={ListTools:-SearchAll(2,i)},3={ListTools:-SearchAll(3,i)}]):
newTj:=table([1={op(j[[op(newTi)]])},2={op(j[[op(newTi)]])},3={op(j[[op(newTi)]])}]):
res:=((newTj union newTj) subset {0,1,2}) or ((newTj union newTj) subset {0,1,3}) or ((newTj union newTj) subset {0,2,3}):
res:=not res:
else
res:=false:
end if:
return(res):
end proc,```

It only works for this example.  I need to make it work for a different TS.

@Carl Love  I was trying to remove condition 3 from Orbit by simply comment it out (I pay attention to the ands), but unfortunately it breaks the code somehow.

`Error, (in anonymous procedure called from AllowOrbit) improper op or subscript selector `

## results...

@Carl Love  I did as you've asked,  The results are:

1. compile=false - Linux -  same error.  mac - problem solved, no messages.
2. numtasks=26.  Linux - no error.
3. Sequential works fine for both OS's before and after changes.

## Partially solved...

@Carl Love The second attempt works in the mac but it did not in the server. A different error msg comes out if I try one more time ```TS:=table([0={},1={1},2={2},3={3},4={1},5={1,2},6={1,3},7={2},8={2,3},9={3}]);
testallvars := proc(S::set,T::table)
description "This function tests if all variables show up in the 3D form";
local j,ans;
j:=op~(2,S):
ans:={seq(op(tab[j[k]]),k=1..numelems(j))}:
evalb(evalb(ans={1,2,3})):
end proc:
```

## many thanks...

@Carl Love Many thanks.  Now I know why the number on the bottom right change from time to time.

## need help...

@Carl Love Many many thanks. That code will save me precious time, thank you ever so much. As usual, I need time to understand what is going on. I tried to run Symmetry.mw on my mac and on my server but unfortunately, it did not run on both of them.  Here are the screenshots

1) Server 2) mac New questions:

1. How to insert a code (OrbitPartition module) in a worksheet as you did?
2. How to load Orbit partition module without executing the entire worksheet?  I copied it to a separate mpl file to be called whenever I need.  With the error messages I am not sure if the calling of the module works.

Regarding the proof, I would like to see it if I may.  You have my email address, don't you?  Many thanks.

## that is awesome!...

@Carl Love Please don't keep me in the dark.   Answering your question: No, that would be my next step.   My Linux box is on its knee trying to find the 12-tuple sets.   The problem here is one step further. There is another condition that depends on solve.

﻿