Of course we would like to promote PDL whenever possible, however if all
you need is bessel functions perhaps
Math::GSL::SF<http://p3rl.org/Math::GSL::SF> would
be enough to get you going.

You will need to have the GSL library installed. On *nix/Mac this is easy
enough, on Windows, a precompiled version may be necessary, and soon
myAlien::GSL<http://p3rl.org/Alien::GSL>module should help (once I can
get it working consistently).

Joel

On Mon, Nov 14, 2011 at 9:17 PM, David Mertens <[email protected]>wrote:

> Darwyn -
>
> You have got to be kidding me... I just addressed a security vulnerability
> with the PDL constructor, but I had assumed that it wouldn't have been an
> issue. :-D  However, you are using Safe.pm and evaling code anyway, so it
> wouldn't be an issue for you.
>
> I'd love to help you out, but clearly WeBWorK does some non-standard
> namespace handling sort of stuff. Could you point me to some docs about
> writing macros? That would help a lot. Once I understand how macros work,
> I'll likely be able to provide more guidance on how to expose the PDL
> interface to your students, and how to properly handle their answers.
>
> David
>
> On Mon, Nov 14, 2011 at 8:00 PM, darwyn cook <[email protected]> wrote:
>
>>  Hi all,
>> In the classes I teach, I use a free online homework system called
>> WeBWorK <http://webwork.maa.org/>. In the background WeBWorK uses perl
>> to code problems, it would be really nice to have access to PDL to write
>> some more advanced problems. For example, I am writing problems for a PDE
>> course that require Bessel functions.
>>
>> I have PDL installed on our WeBWorK server, and working properly. WeBWorK
>> uses the module safe.pm to protect itself from student hackers, so the
>> PDL modules I need have to be installed in a way that safe recognizes them.
>>
>> The recommended way to do this is to move the corresponding PDL module to
>> a specific directory  on the server,  /pg/lib , update the config file for
>> webwork to recognize the module is installed, and then write a header file
>> in another directory which you then include in your problems.
>>
>> For the Bessel functions I moved BESSEL.pm to the /pg/lib directory
>> mentioned above, installed this module in the config file, and wrote a
>> header file that calls bessjn. That seems to work fine, the problems
>> recognize that bessjn exists. However, the output of bessjn is a piddle
>> (correct?), which I need to make into a perl variable so WeBWorK will
>> recognize it. No problem, I can just use the sclr command built into Core.pm
>>
>> Except I cannot get WeBWorK to recognize Core.pm. I moved a copy into
>> /pg/lib,  and added it to the config file just as I did with BESSEL.pm.
>> Made sure that Core.pm allows sclr to be exported in its EXPORT_OK command,
>> but WeBWorK still cannot find sclr.  Any thoughts on how to make this work
>> would greatly appreciated.
>>
>> Darwyn
>>
>> P.S. Here are the contents of the macro file that I put into a webwork
>> problem. You may notice that I also am importing Math.pm also as an act of
>> desperation.
>>
>> sub _PGspecialfunctionsmacros_init {
>>         foreach my $t (@BESSEL::EXPORT_OK) {
>>                 *{$t} = *{"BESSEL::$t"}
>>                 }
>>          foreach my $t (@Math::EXPORT_OK) {
>>                 *{$t} = *{"Math::$t"}
>>                 }
>>          foreach my $t (@Core::EXPORT_OK) {
>>                 *{$t} = *{"Core::$t"}
>>                 }
>> }
>>
>> =head1 Special Functions Macros
>>
>> =head3 Bessel Functions
>>
>> =pod
>>
>>         Usage: besseljn(x,n)
>> =cut
>>
>>
>> ############################################
>> sub besseljn {
>>     my ($a,$b) = @_;
>>     $x = bessjn($a,$b);
>>     return sclr($x);
>> }
>> 1;
>>
>>
>> _______________________________________________
>> Perldl mailing list
>> [email protected]
>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>
>>
>
>
> --
> Sent via my carrier pigeon.
>
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>
>
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to