John Fredsted

2238 Reputation

15 Badges

20 years, 171 days

MaplePrimes Activity


These are replies submitted by John Fredsted

As correctly stated by Jacques, trigsubs does indeed use an internal table. From
interface(verboseproc = 2):
print(trigsubs);
it can be seen to be `trigsubs/TAB`, which may then subsequently be explicitly shown using
print(`trigsubs/TAB`);
As correctly stated by Jacques, trigsubs does indeed use an internal table. From
interface(verboseproc = 2):
print(trigsubs);
it can be seen to be `trigsubs/TAB`, which may then subsequently be explicitly shown using
print(`trigsubs/TAB`);
I think you misunderstand me. What surprises me is not that trigsubs treats, say, tan(z) and tan(z)^2 differently. What surprises me is that the lists as given by trigsubs(tan(z)) and FunctionAdvisor(tan,"identities"), respectively, do not contain precisely the same identities for tan. That state of affairs also applies to for instance sin and cos, seemingly indicating that the set of lists from trigsubs and the set of lists of trigonometric identities from FunctionAdvisor are separately maintained. If that is indeed true, why such a design? Why does trigsubs not simply look up the identities it needs using FunctionAdvisor for the trigonometric functions?
I think you misunderstand me. What surprises me is not that trigsubs treats, say, tan(z) and tan(z)^2 differently. What surprises me is that the lists as given by trigsubs(tan(z)) and FunctionAdvisor(tan,"identities"), respectively, do not contain precisely the same identities for tan. That state of affairs also applies to for instance sin and cos, seemingly indicating that the set of lists from trigsubs and the set of lists of trigonometric identities from FunctionAdvisor are separately maintained. If that is indeed true, why such a design? Why does trigsubs not simply look up the identities it needs using FunctionAdvisor for the trigonometric functions?
I did not know about algsubs either, somewhat embarrasing because, as you correctly state, the help text on subs, which I do know (hurrah!), does point to algsubs. I wonder what else I miss out on either as a result of missing pointers in the help text, or as a result of my own inattention.
I did not know about algsubs either, somewhat embarrasing because, as you correctly state, the help text on subs, which I do know (hurrah!), does point to algsubs. I wonder what else I miss out on either as a result of missing pointers in the help text, or as a result of my own inattention.
Thanks for refreshing my memory: actually, I do know about FunctionAdvisor, but somehow, I do not know why, I seem to forget about it all the time. Anyway, I just made a little comparative study of FunctionAdvisor and trigsubs concerning tan(z), writing
map(rhs,FunctionAdvisor(tan)["identities"]);
trigsubs(tan(z));
It somewhat surprises me that the lists do not contain the same elements (identities).
Thanks for refreshing my memory: actually, I do know about FunctionAdvisor, but somehow, I do not know why, I seem to forget about it all the time. Anyway, I just made a little comparative study of FunctionAdvisor and trigsubs concerning tan(z), writing
map(rhs,FunctionAdvisor(tan)["identities"]);
trigsubs(tan(z));
It somewhat surprises me that the lists do not contain the same elements (identities).
Please see the post by Scott Brehm below.
Please see the post by Scott Brehm below.
I did not know about trigsubs which does seem to be a very useful function to know. For instance, writing trigsubs(tan(x)) provides me with a long list of ways to rewrite tan(x), making superfluous to some degree a mathematical handbook.
I did not know about trigsubs which does seem to be a very useful function to know. For instance, writing trigsubs(tan(x)) provides me with a long list of ways to rewrite tan(x), making superfluous to some degree a mathematical handbook.
Thank you guys for your very valuable input. I will certainly bookmark this thread. Even though I am happy to hereby having ascertained that I have not lost the ability to reason, I am worried about having to navigate through such incoherent behaviour of Maple: it seems that being neither a Maple newcomer nor a Maple master, but being in between those, can put you in some quite doubtful situations, because you are starting to take advantage of the more advanced issues of Maple without yet having the sufficient insight to avoid its unfortunate associated pitfalls. Of course, this is not the way it should be, I think.
Please forgive me, but that does not satisfy me: Just as
restart:
assume(x::complexcons):
type(x,complexcons);
returns false, so does
restart:
assume(x::complex):
type(x,complex);
and so does
restart:
assume(x::posint):
type(x,posint);
etc., I suppose. Maybe it is just me being silly, but that does not seem reasonable because if some variable x is assumed to be of some type, then testing that variable for that type should return true. Otherwise in conjunction assume() and type() are just "flapping in the breeze".
I quite agree with you on the last sentence of yours.
First 53 54 55 56 57 58 59 Last Page 55 of 68