Closed joshmaglione closed 4 years ago
Hi Josh, Are you able to test quickly if input is good? If not, does the code deduce that you're in the decomposable case rapidly? Best wishes, Eamonn
Generally it is easy to detect this and it is a by-product of the current computation. (Compute the centroid, compute its quotient by the Jacobson radical. Ask if that is a field.) I think it best to name the functions after what they do rather than have a user struggling to make it do what it cannot. So I would favor adding names like TGID
Fine. But will you still not need to detect that the input is of the appropriate type? And declare it invalid or return false or something else? Changing the name will not resolve that, nor is it obvious that a user who generates input will know whether it's valid or not. How about adding an intrinsic to check if group or tensor is indecomposable, so allowing user to check before calling?
Yeah, we can test this and IsIndecomposable
or TGIsIndecomposable
while it will take the time that it takes to compute centroids, no further calculuation will avoid that anyway. This gets stored as an atribute so a user calling this as a check before using TG stuff wont experience a duplicate calculuation. In the future that condition should be removed.
Sorry I don't really understand your answer. Are you saying that you will have "IsIndecomposable" which will tell if input is suitable? If so, good. When you write "In the future that condition should be removed", do you mean that you want to remove the indecomposable requirement for TG... functions?
Oh, yes, I mean to say the typical use case could be as follows If IsIndecomposable(G) then TGSignature(G)
and so on. In the future the restriction of indecomposablity should be removed as in theory it is not needed, but its implementation in general would take more work.
Fine. Then just make IsIndecomposable a requirement for the various intrisinics TG ... printing out a message saying input must be indecomposable. I would simply add this requirement to the signature of the function and leave names of TG intrinsics as they are ...
Thanks @algeboy and @eobr007. This can be done.
@algeboy you said the following, which is true for tensors but not groups currently.
This gets stored as an attribute so a user calling this as a check before using TG stuff wont experience a duplicate calculation.
Maybe we should create an attribute groups groups that will store the various tensors associated to a group? This way the computation really can be stored on the group level and not just with the tensor. Such a change should happen in TensorSpace. I made a request over there: TensorSpace Issue #22
This has now been implemented onto the test
branch.
Issues #10 and #12 are fundamentally about the same thing: we cannot handle (directly) decomposable groups or tensors.
How are we going to fix this? There seems to be two directions.
Indecomposable
to the intrinsic name.I'm open to different suggestions @algeboy @galois60.