emendes

355 Reputation

6 Badges

5 years, 155 days

MaplePrimes Activity


These are replies submitted by emendes

@Carl Love I edited my previous msg.

Yes, I meant "real time"> 90.  

@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. 

@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. 

PDFs attached.  Please use 3Dform

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

Properties_Quad_4Dforms.pdf

 

 

@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).

@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

 

@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).   

@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[1])]])},2={op(j[[op(newTi[2])]])},3={op(j[[op(newTi[3])]])}]):
   res:=((newTj[1] union newTj[2]) subset {0,1,2}) or ((newTj[1] union newTj[3]) subset {0,1,3}) or ((newTj[2] union newTj[3]) 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 

 

@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.

@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

I had to add another condition (Condition 5).   

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:

 

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

@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.  

 

@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.  

@acer Many thanks for helpful information on kernelopts.  In your answer, you mentioned garbage collection.  I am dealing with huge sets and if I add a loop to OrbitPartition to change  the size of tuple (say from 3 to 15), memory allocation could be a problem.   For instance, 12 crashed my 72 core linux.  I haven't used gc() from one step to the another.  The reason for not using was "Note, as of Maple 16 the use of gc is discouraged.".   How serious is that statement?   Would it be safe to use gc() within the loop?  

@Carl Love Many thanks for the excellent explanation. When I saw the numbers I knew it that there is something fishy about them.  

Re: Making it a module: - Yes, please.  I have too many worksheets doing almost the same thing. I am placing the definite solutions into a module so I do not need to worry about using previous versions or anything of the sort. 

Module:  export OrbitPartition and all the other functions as local functions.  I know there will be a catch here and I want to learn what is needed to avoid it.  

4 5 6 7 8 9 10 Last Page 6 of 16