[NTG-context] graphics

Alan Braslau braslau.list at comcast.net
Thu Dec 13 16:44:39 CET 2018


Of course, it is:

double jn(int n,double x);

and

vardef jn(expr n, x) = scantokens(lua("mp.quoted( ffi.C.jn(" & decimal n & "," & decimal x & "))")) enddef ;

Alan

(shows that I have yet to use jn ;-)


On Thu, 13 Dec 2018 14:32:39 +0100
Otared Kavian <otared at gmail.com> wrote:

> Hi Mikael,
> 
> Thank you, as ell as Alan and Henri, for giving us a simple way to use Bessel functions, directly in ConTeXt.
> However I have a question, which may show my total ignorance of the maths libraries ffi and consorts: how do you specify the value of the integr $n$ when you want to use $J_{n}(x)$?
> 
> Best regards: OK
> 
> > On 12 Dec 2018, at 21:13, Mikael P. Sundqvist <mickep at gmail.com> wrote:
> > 
> > On Wed, Dec 12, 2018 at 9:02 PM Henri Menke <henrimenke at gmail.com> wrote:  
> >> 
> >> On 13/12/18 8:56 AM, Alan Braslau wrote:  
> >>> On Wed, 12 Dec 2018 20:42:56 +0100
> >>> "Mikael P. Sundqvist" <mickep at gmail.com> wrote:  
> >>>> 
> >>>> Thanks, Alan! That looks very promising. I could not make it work,
> >>>> though, and I guess that is because I use linux and do not know what
> >>>> to change for what. I installed libcerf but I assume something else is
> >>>> missing. In any case, this is one of the things it would be nice to
> >>>> have, at least as a module. I have no idea on how to realize that,
> >>>> though.
> >>>> 
> >>>> /Mikael  
> >>> 
> >>> You likely also need to install libffi - I do not know what package
> >>> this is on your flavor of linux - Luigi is the ffi specialist!  
> >> 
> >> FFI is integrated in LuaTeX >= 1.03
> >> 
> >> In you example you load libcerf but you are not using it.  What you are
> >> actually using are the Bessel function from the C Standard library.  GCC
> >> includes them as a GNU extension.
> >> https://www.gnu.org/software/libc/manual/html_node/Special-Functions.html#index-j0
> >> Your example also works if you remove libcerf (at least for me on Linux).
> >>   
> > 
> > Thanks Henri! Indeed it worked now. The following example (just in
> > case someone else did not get what to change) compiles here, and shows
> > the expected graph. This is very good news!
> > 
> > \startluacode
> > 
> > ffi = require("ffi")
> > ffi.cdef[[
> > double j0(double x);
> > double j1(double x);
> > double jn(double x);
> > ]]
> > 
> > \stopluacode
> > 
> > \startMPdefinitions{doublefun}
> >  vardef jzero primary x = scantokens(lua("mp.quoted( ffi.C.j0(" &
> > decimal x & "))")) enddef ;
> >  vardef jone  primary x = scantokens(lua("mp.quoted( ffi.C.j1(" &
> > decimal x & "))")) enddef ;
> >  vardef jn    primary x = scantokens(lua("mp.quoted( ffi.C.jn(" &
> > decimal x & "))")) enddef ;
> > \stopMPdefinitions
> > 
> > 
> > \starttext
> > \startMPpage[instance=doublefun]
> > draw function(1,"x","jone(x)",epsed(0),epsed(10),1/10) scaled 1cm;
> > \stopMPpage
> > \stoptext
> > 
> > /Mikael
> > ___________________________________________________________________________________
> > If your question is of interest to others as well, please add an entry to the Wiki!
> > 
> > maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> > webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> > archive  : https://bitbucket.org/phg/context-mirror/commits/
> > wiki     : http://contextgarden.net
> > ___________________________________________________________________________________  
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________


More information about the ntg-context mailing list