version 1.382, 2005/09/14 19:20:23
|
version 1.384, 2005/10/18 21:46:19
|
Line 665 sub setup_globals {
|
Line 665 sub setup_globals {
|
|
|
sub init_safespace { |
sub init_safespace { |
my ($target,$safeeval,$safehole,$safeinit) = @_; |
my ($target,$safeeval,$safehole,$safeinit) = @_; |
|
$safeeval->deny_only(':dangerous'); |
|
$safeeval->reval('use Math::Complex;'); |
|
$safeeval->permit_only(":default"); |
$safeeval->permit("entereval"); |
$safeeval->permit("entereval"); |
$safeeval->permit(":base_math"); |
$safeeval->permit(":base_math"); |
$safeeval->permit("sort"); |
$safeeval->permit("sort"); |
Line 722 sub init_safespace {
|
Line 725 sub init_safespace {
|
$safehole->wrap(\&Math::Cephes::stdtr ,$safeeval,'&stdtr' ); |
$safehole->wrap(\&Math::Cephes::stdtr ,$safeeval,'&stdtr' ); |
$safehole->wrap(\&Math::Cephes::stdtri,$safeeval,'&stdtri'); |
$safehole->wrap(\&Math::Cephes::stdtri,$safeeval,'&stdtri'); |
|
|
|
$safehole->wrap(\&Math::Cephes::Matrix::mat,$safeeval,'&mat'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::new,$safeeval, |
|
'&Math::Cephes::Matrix::new'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::coef,$safeeval, |
|
'&Math::Cephes::Matrix::coef'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::clr,$safeeval, |
|
'&Math::Cephes::Matrix::clr'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::add,$safeeval, |
|
'&Math::Cephes::Matrix::add'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::sub,$safeeval, |
|
'&Math::Cephes::Matrix::sub'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::mul,$safeeval, |
|
'&Math::Cephes::Matrix::mul'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::div,$safeeval, |
|
'&Math::Cephes::Matrix::div'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::inv,$safeeval, |
|
'&Math::Cephes::Matrix::inv'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::transp,$safeeval, |
|
'&Math::Cephes::Matrix::transp'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::simq,$safeeval, |
|
'&Math::Cephes::Matrix::simq'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::mat_to_vec,$safeeval, |
|
'&Math::Cephes::Matrix::mat_to_vec'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::vec_to_mat,$safeeval, |
|
'&Math::Cephes::Matrix::vec_to_mat'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::check,$safeeval, |
|
'&Math::Cephes::Matrix::check'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::check,$safeeval, |
|
'&Math::Cephes::Matrix::check'); |
|
|
# $safehole->wrap(\&Math::Cephes::new_fract,$safeeval,'&new_fract'); |
# $safehole->wrap(\&Math::Cephes::new_fract,$safeeval,'&new_fract'); |
# $safehole->wrap(\&Math::Cephes::radd,$safeeval,'&radd'); |
# $safehole->wrap(\&Math::Cephes::radd,$safeeval,'&radd'); |
# $safehole->wrap(\&Math::Cephes::rsub,$safeeval,'&rsub'); |
# $safehole->wrap(\&Math::Cephes::rsub,$safeeval,'&rsub'); |
Line 1076 sub parstring {
|
Line 1109 sub parstring {
|
return $temp; |
return $temp; |
} |
} |
|
|
|
sub extlink { |
|
my ($res,$exact)=@_; |
|
if (!$exact) { |
|
$res=&Apache::lonnet::hreflocation($Apache::lonxml::pwd[-1],$res); |
|
} |
|
push(@Apache::lonxml::extlinks,$res) |
|
} |
|
|
sub writeallows { |
sub writeallows { |
unless ($#extlinks>=0) { return; } |
unless ($#extlinks>=0) { return; } |
my $thisurl = &Apache::lonnet::clutter(shift); |
my $thisurl = &Apache::lonnet::clutter(shift); |