A quickie: ")read /home/amca/quicklisp/setup.lisp" works in FriCAS, but not
in efricas.  Why not?  Also, the history mechanism in FriCAS in a console
seems a bit odd: sometimes (well, often), a previous command, obtained
using the arrow keys, will have extra characters, or chanrecters missing
(I'm using Konsole: the KDE console, with my term=xterm.)

On Wed, Oct 28, 2015 at 10:55 AM, Alasdair McAndrew <amc...@gmail.com>
wrote:

> Orright... two questions about
> https://github.com/billpage/gsla/blob/master/gsl.spad, and in particular
> the final three lines:
>
> gslIntegrationQng(f,a,b) ==
> r:List DF:=INTEGRATION_-QNG_-LIST(mkLispFunction1(f@
> (DF->DF))$Lisp,a,b)$Lisp
> [r(1),r(2),r(3) pretend Integer]
>
> First the use of "pretend".  As I understand it, "pretend" is a sort of
> syntactic fudge factor to allow Axiom to compile code in which the types
> may not be precisely fixed, or in which there may be a type mismatch.   But
> why is it needed particularly here - in the definition of
> gslIntegrationQng?   Surely an object is either an integer or it isn't, I
> would have thought, and we can define the final value "neval" to be an
> integer.
>
> Second, the underscores in "INTEGRATION_-QNG_-LIST".  Are these just to
> escape the hyphens, lest SPAD confuse them with minus signs? After all, the
> relevant function is defined in gsl.lisp as
>
> defun integration-qng-list (f a b)
> (multiple-value-list (integration-qng f a b)))
>
> which incidentally would appear to indicate that one of the languages here
> is case-insensitive.  Or is there another reason?
>
> With regard to plain text format, I fully agree, and I'll do that if
> people want.  On the other hand, it's nice to have some way of
> distinguishing code samples from text - the use of markdown is good for
> this, but I don't know if google groups supports it.  (Well, it sort of
> does, but through a browser extension called "Markdown Here" which also
> supports LaTeX.)
>
> I do find the mixture of SPAD and Lisp with their individual conventions
> and behaviours very confusing.
>
> <Australian Accent>I tells ya, there's nuthin' like Axiom for makin' a
> bloke feel stupid!</Australian Accent>
>
> -Alasdair
>
>
>
> On Wed, Oct 28, 2015 at 12:54 AM, Bill Page <bill.p...@newsynthesis.org>
> wrote:
>
>> Alasdair,
>>
>> There is stuff to read such as Ralf suggests but in my opinion just
>> hitting your head against something relevant hard enough for long
>> enough is much more effective :)  Kurt's example code is short enough
>> not to cause much harm, so why not start just by asking one to two
>> questions rather than making a list?  As I am sure you tell your
>> students, the first step is not letting it make you feel intimidated.
>> Just ask.
>>
>> Concerning my question about naming conventions: My preference is to
>> avoid all redundant prefixes so Maxima isn't such a great model. I am
>> not sure I understand the intention of your examples
>>
>> >> v := quad(x+->exp(-x^2),0,1,1.0e-10)
>> >> qag(v)
>>
>> but yes, that is more or less what I would like.  The term "domain" in
>> Axiom has a particular meaning: a data/mathematical type or class.
>> For the purposes of extending Axiom to include more operations on
>> existing domains, e.g. DoubleFloat, a "package" is more appropriate.
>> Because GSL is a rather large library, it might be appropriate to
>> define more than one package but right now we have only one named
>> 'gsl'.
>>
>> Actually, using a package/domain name like 'gsl' consisting of all
>> lower case letters is contrary to the general conventions in the
>> Axiom/FriCAS library. Unlike variable and functions names, these names
>> are supposed to start with a capital letter.  Each package/domain also
>> has a short (< 6 characters) abbreviation, by convention written in
>> all upper case.  So we should probably at least change the package
>> name from 'gsl' to 'Gsl'.  In keeping with what I said above, maybe we
>> would want package names such as 'GSLintegrate' etc.
>>
>> As you see in examples, in many contexts we can avoid explicitly using
>> the package/domain name since it is automatically deduced by the
>> interpreter.
>>
>> Concerning your suggested packages: Note that there is already
>> extensive support in Axiom/FriCAS for Groebner basis compuations.  Did
>> you have something specific in mind?  BLAS and LAPACK might be
>> interesting.  As I understand it there are already interfaces to these
>> packages in GSL.
>>
>> One thing I tried last night (unsuccessfully) was to call
>> 'lu-decomposition' the GSLL equivalent of 'gsl_linalg_LU_decomp'.  I
>> have a problem converting the matrix passed by FriCAS to the required
>> matrix format. This is the kind of thing we need to resolve for using
>> more general routines.
>>
>> BTW, There is or once was a policy promoting the use of plain text
>> email format on mailing lists. I notice yours arrive with a more
>> modern look. There might be some people around who prefer the older
>> format.
>>
>> Bill.
>>
>>
>>
>> On 27 October 2015 at 08:25, Alasdair McAndrew <amc...@gmail.com> wrote:
>> >
>> > Sorry to be an idiot - but where's a good place to go to learn about
>> spad/boot/lisp
>> > insofar as they relate to PanAxiom development?  I've been looking over
>> Kurt's
>> > gsl.lisp and gsl.spad and there are quite a few things which confuse
>> me.  I won't
>> > list them, as it would be a depressingly long list for two very short
>> files...
>> >
>> > On Tue, Oct 27, 2015 at 2:20 PM, Alasdair McAndrew <amc...@gmail.com>
>> wrote:
>> >>
>> >> We can just go the Maxima approach, and write quadQag, quadQng etc
>> (Maxima has quad_qag, quad_qng) - this retains the naming convention from
>> QUADPACK.   Or we could have a domain QUAD which included operations qag,
>> qng etc... like this:
>> >>
>> >> v := quad(x+->exp(-x^2),0,1,1.0e-10)
>> >> qag(v)
>> >>
>> >> As to other quicklisp libraries, BLAS, LAPACK? What about
>> CL-BUCHBERGER - a common lisp implementation of Buchberger's algorithm for
>> Groebner base computation?  The place to search is quickdocs.org.
>> >>
>> >> Note that QUADPACK is far from being the last word of numeric
>> quadrature routines: I have been experimenting with the integral of
>> sin(1/x) between x=0 and x=1, and pretty much every routine quits in
>> disgust with an error.  That's why I would also like to implement a scheme
>> for tanh-sinh integration.
>> >>
>> >>
>> >>
>> >> On Tue, Oct 27, 2015 at 1:37 PM, Bill Page <bill.p...@newsynthesis.org>
>> wrote:
>> >>>
>> >>> Here is a little design issue concerning names.
>> >>>
>> >>> Right now we have the example of 'gslIntegrationQng' and I have
>> >>> started to fill in some miscellaneous functions such as
>> >>>
>> >>>     gslLookup: String -> Symbol
>> >>>       ++ \spad{\gslLookup} finds GSLL function by GSL name and
>> >>>       ++ displays some documentation.
>> >>>     gslIsNaN?: DF -> Boolean
>> >>>       ++ \spad{\gslIsNaN?} returns true if x is not-a-number.
>> >>>     gslIsInf: DF -> SingleInteger
>> >>>       ++ \spad{\gslIsInf} returns +1 if x is positive infinity,
>> >>>       ++ -1 if x is negative infinity and 0 otherwise. On
>> >>>       ++ some platforms 1 is returned for negative infinity.
>> >>>     gslFinite?: DF -> Boolean
>> >>>       ++ \spad{\gslFinite?} returns true if x is a real number,
>> >>>       ++ and false if it is infinite or not-a-number.
>> >>>     gslFcmp: (DF,DF,DF) -> SingleInteger
>> >>>       ++ \spad{\gslFcmp} determines whether x and y are approximately
>> >>>       ++ equal to a relative accuracy epsilon.
>> >>>     gslIntegrationQng :  (DF -> DF,DF,DF) -> Record(result:DF,
>> >>> abserr:DF, neval:Integer)
>> >>>       ++ \spad{\gslIntegrationQng}  applies the Gauss-Kronrod
>> 10-point,
>> >>>       ++ 21-point, 43-point and 87-point integration rules in
>> succession
>> >>>
>> >>> but before going further it occurs to me to wonder if we really should
>> >>> continue to use the prefix 'gsl' in all these function names?  In
>> >>> Axiom/FriCAS it is common to overload names and rely on package names
>> >>> and types for disambiguation.  It seems unnecessarily redundant to
>> >>> write:
>> >>>
>> >>> gslIntegrationQng$gsl
>> >>>
>> >>> Also, the names that appear at the GSLL (lisp) level omit the gsl
>> >>> prefix for a similar reason - Common Lisp packaging.
>> >>>
>> >>> So I propose that we drop the 'gsl' part of the name and lowercase the
>> >>> first letter, as is the Axiom custom.
>> >>>
>> >>>     lookup: String -> Symbol
>> >>>       ++ \spad{\lookup} finds GSLL function by GSL name and
>> >>>       ++ displays some documentation.
>> >>>     isNaN?: DF -> Boolean
>> >>>       ++ \spad{\isNaN?} returns true if x is not-a-number.
>> >>>     isInf: DF -> SingleInteger
>> >>>       ++ \spad{\isInf} returns +1 if x is positive infinity,
>> >>>       ++ -1 if x is negative infinity and 0 otherwise. On
>> >>>       ++ some platforms 1 is returned for negative infinity.
>> >>>     finite?: DF -> Boolean
>> >>>       ++ \spad{\finite?} returns true if x is a real number,
>> >>>       ++ and false if it is infinite or not-a-number.
>> >>>     fcmp: (DF,DF,DF) -> SingleInteger
>> >>>       ++ \spad{\fcmp} determines whether x and y are approximately
>> >>>       ++ equal to a relative accuracy epsilon.
>> >>>     integrationQng :  (DF -> DF,DF,DF) -> Record(result:DF, abserr:DF,
>> >>> neval:Integer)
>> >>>       ++ \spad{\integrationQng}  applies the Gauss-Kronrod 10-point,
>> >>>       ++ 21-point, 43-point and 87-point integration rules in
>> succession
>> >>>
>> >>> What do you think?
>> >>>
>> >>> On 26 October 2015 at 20:44, Alasdair McAndrew <amc...@gmail.com>
>> wrote:
>> >>> >
>> >>> > Now that Karl has provided a fantastic working template for an
>> integration
>> >>> > routine from QUADPACK/GSL/GSLL it should be possible to extend those
>> >>> > files to incorporate some of the other routines.   For the next few
>> days I'll
>> >>> > not have much time, but I'll aim to fiddle later in the week.  And
>> I might
>> >>> > even learn a little Lisp in the process!
>> >>> >
>> >>>
>> >>> My plan is to chip away at adding new routines as time permits.  If
>> >>> there is something in particular you would like to tackle, just let me
>> >>> know.
>> >>>
>> >>> Besides GSL are there some other libraries that might be interesting
>> >>> and amenable to the QuickLisp approach?
>> >>>
>> >>> >
>> >>> >>
>> >>> >> Am 26.10.2015 um 17:34 schrieb Bill Page:
>> >>> >> > I just dropped this "proof-of-concept" level code into a
>> repository at:
>> >>> >> >
>> >>> >> >   https://github.com/billpage/gsla
>> >>> >> >
>> >>> >> > Title: GNU Scientific Library for Axiom (and FriCAS and
>> OpenAxiom)
>> >>> >> >
>> >>>
>> >>> --
>> >>> You received this message because you are subscribed to a topic in
>> the Google Groups "FriCAS - computer algebra system" group.
>> >>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/fricas-devel/q18Av7P3jnM/unsubscribe.
>> >>> To unsubscribe from this group and all its topics, send an email to
>> fricas-devel+unsubscr...@googlegroups.com.
>> >>> To post to this group, send email to fricas-devel@googlegroups.com.
>> >>> Visit this group at http://groups.google.com/group/fricas-devel.
>> >>> For more options, visit https://groups.google.com/d/optout.
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >>
>> >
>> >
>> >
>> > --
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "FriCAS - computer algebra system" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to fricas-devel+unsubscr...@googlegroups.com.
>> > To post to this group, send email to fricas-devel@googlegroups.com.
>> > Visit this group at http://groups.google.com/group/fricas-devel.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "FriCAS - computer algebra system" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/fricas-devel/q18Av7P3jnM/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> fricas-devel+unsubscr...@googlegroups.com.
>> To post to this group, send email to fricas-devel@googlegroups.com.
>> Visit this group at http://groups.google.com/group/fricas-devel.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> [image: http://www.facebook.com/alasdair.mcandrew]
> <http://www.facebook.com/alasdair.mcandrew> [image:
> https://plus.google.com/+AlasdairMcAndrew/posts]
> <https://plus.google.com/+AlasdairMcAndrew/posts> [image:
> https://www.linkedin.com/pub/alasdair-mcandrew/a/178/108]
> <https://www.linkedin.com/pub/alasdair-mcandrew/a/178/108> [image:
> https://twitter.com/amca01] <https://twitter.com/amca01> [image:
> http://numbersandshapes.net] <http://numbersandshapes.net>
>



-- 
[image: http://www.facebook.com/alasdair.mcandrew]
<http://www.facebook.com/alasdair.mcandrew> [image:
https://plus.google.com/+AlasdairMcAndrew/posts]
<https://plus.google.com/+AlasdairMcAndrew/posts> [image:
https://www.linkedin.com/pub/alasdair-mcandrew/a/178/108]
<https://www.linkedin.com/pub/alasdair-mcandrew/a/178/108> [image:
https://twitter.com/amca01] <https://twitter.com/amca01> [image:
http://numbersandshapes.net] <http://numbersandshapes.net>

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To post to this group, send email to fricas-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to