## 1122 Reputation

12 years, 107 days
East Grinstead, United Kingdom

## What theorem is this?...

@JAMET  Can you post a reference to some theorem on this? In general for problems like this I would not define the points and lines using the geometry package. That seems to require purely numerical values  .I can see that t is constant but t is in a form that takes on two values  theta and Pi- theta. That makes difficult to simplify alpha to eliminate t

What might help is rationally parameterising the point M on the ellipse  [a cos(t), b sin(t)] to [a* (1-lambda^2)/(1+lambda^2), b*2*lambda/(1+lambda^2)] ,    lambda=  -infinity to  +infinity.

## Ahh......

@vv Thanks. I was for some reason under the impression that there was no A3 format.

## Correct. Some background...

@Carl Love Very nice. The background is, I  am doing a Cross Ratio procedure that handles  single numbers,  [x,y] , [[x,y,z] points and projective points <x,y,1>. Was checking for collinearity (to catch errors). It all fell apart with the projective point at infinity <x,y,0>.
Usually I check collinearity of  three points with the determinant of a 3 x 3 matrix = 0. In this case I have to form a plane and selecting the <x,y,0>  point to form the vectors from ensures the Cross Product is not 0.

Edit:- And after all that trouble to test for collinearity, it becomes void when applied to a conic.

## only one needed...

@acer As far as I can see only need to find one zero. If these is another 0 the cross procuct still works and if 4th is on the plane the dot procuct is still 0. If I have two 0's I probably have other problems.

## 2024.1?...

@C_R   How did you get 2024.1?

## if ifelse...

@Scot Gould Ahh. I was wondering what the difference is between them.Is there anything pitfalls of if vs itelse in these contexts?

## Neat...

@dharr  Very nice. I figured there was some real efficient way.

## transform useful...

@acer Yes intersectplot is a sledge hammer to crack a nut here.  transform definately a good solution generally. Without having to restructure all my procedures that produce expressions is there a way of getting plot to work with say

`-(13*x)/12 - (5*y)/8 + 71/96`

obviously

`plot(solve(L23,y),x=-3..2,adaptive=false,numpoints=2)`

works. But that is, I'd say replacing one hammer with another.

## Have noticed can't change Typesetting le...

@acer I noticed this a while ago in Maple 2024 on Win 10. GUI Tools->Options->Display setting, If I change the typesetting level to Standard and and either apply to session or globally, when I repopen the Display settings (even immediatly) it is set to Extended.

I don't have anything special set in the  .ini file that should cause this. Has anyone else seen this?

## Wonderful explination...

@acer Very Very well explained.

## Trying to understand the code now....

@acer

Edit. I hadn't read your full reply.  The simpler version is understandable assuming the<>{} is checking for and empty set.

Thank you. I am just trying to understand how the code works.
so the u->indets(rhs(u)  sets up the mapping

And(name,Not(constant),   detects constants like Pi and gamma etc

satisfies(nm->depends(rhs(u),nm))))<>{}   This I do not understand at all.

```
selectremove(u->indets(rhs(u),
And(name,Not(constant),
satisfies(nm->depends(rhs(u),nm))))<>{}, C)```

## All interesting approaches...

@acer Thank you. And the oracle is?. The expressions will be burried inside a proc in a package. Well probably have a couple of options on what to return/display. If all the parameters (a..f) are numeric/real then just eval the expression completly and return as a pair.

If  the parameters are algebraic eg a = 4+K*sqrt(7)   then return the large expression format elided.
I can check that as follows.

```vals:=[a=18,b=sqrt(21)+5,c=-(7),d=-29,e=-37,f=-56]

`and`~(seq(is(rhs(vals[i]),real),i=1..nops(vals)))```

## That is Powerful...

@acer  That is powerful.
I made your procedure also return the Qs for numerical evaluation.I could not get changing Q to another symbol to work because of this.

I see what you mean about codegen:-optimize(eqn)

I managed to reduce the length of some of the Q expressions by factoring them.

This will be great for displaying these expressions in the table layout and term elision you helped me with a couple of week ago.

Subs_Recur_ac.mw

## I am not sure what you mean...

@C_R So you mean change this

```indets(eqn) minus indets(eqn,name);
subexpr:=map(op,%) minus indets(%,fraction):# remove of root terms - instead of filtering for `^````

indets(eqn,`^`) gives, which has  the a^2 ...e^2

`{a^2, b^2, c^2, d^2, e^2, 1/(a*c - b^2/4), 1/(4*a*c - b^2)^2, (4*a*c*f - a*e^2 - b^2*f + b*d*e - c*d^2)^2, sqrt((a^2 - 2*a*c + b^2 + c^2)*(4*a*c*f - a*e^2 - b^2*f + b*d*e - c*d^2)^2), sqrt(2*sqrt((a^2 - 2*a*c + b^2 + c^2)*(4*a*c*f - a*e^2 - b^2*f + b*d*e - c*d^2)^2) + (-8*a*f + 2*d^2)*c^2 + (8*a^2*f - 2*a*d^2 + 2*a*e^2 + 2*b^2*f - 2*b*d*e)*c - 2*a^2*e^2 - 2*a*b^2*f + 2*a*b*d*e), sqrt(2*sqrt((a^2 - 2*a*c + b^2 + c^2)*(4*a*c*f - a*e^2 - b^2*f + b*d*e - c*d^2)^2) + (8*a*f - 2*d^2)*c^2 + (-8*a^2*f + 2*a*d^2 - 2*a*e^2 - 2*b^2*f + 2*b*d*e)*c + 2*a^2*e^2 + 2*a*b^2*f - 2*a*b*d*e)}`

## I'll experiment with your approach...

@C_R That is a good step forward. I'll apply this to some "beautiful" other expressions I have.

I have been half thinking about setting up a procedure if I get a good all round handling.

Will let you know.

 1 2 3 4 5 6 7 Last Page 1 of 26
﻿