version 1.26, 2001/06/12 21:07:32
|
version 1.29, 2001/07/11 21:36:29
|
Line 21 sub caparesponse_check {
|
Line 21 sub caparesponse_check {
|
my $sig_lbound=''; #done |
my $sig_lbound=''; #done |
my $sig_ubound=''; #done |
my $sig_ubound=''; #done |
my $ans_fmt=''; |
my $ans_fmt=''; |
my $units=''; #done |
my $unit=''; #done |
my $calc=''; |
my $calc=''; |
my ($response,$expr)=@_; |
my ($response,$expr)=@_; |
|
|
($answer,$type,$tol,$sig,$ans_fmt, |
($answer,$type,$tol,$sig,$ans_fmt, |
$units,$calc) = eval $expr.';return $answer,$type,$tol,$sig,$ans_fmt,$units,$calc'; |
$unit,$calc) = eval $expr.';return $answer,$type,$tol,$sig,$ans_fmt,$unit,$calc'; |
#type's definitons come from capaParser.h |
#type's definitons come from capaParser.h |
if ($type eq '' ) { |
if ($type eq '' ) { |
if ( $answer eq ($answer *1.0)) { $type = 2; |
if ( $answer eq ($answer *1.0)) { $type = 2; |
Line 61 sub caparesponse_check {
|
Line 61 sub caparesponse_check {
|
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
$tol_type,$tol, |
$tol_type,$tol, |
$sig_lbound,$sig_ubound, |
$sig_lbound,$sig_ubound, |
$ans_fmt,$units,$calc); |
$ans_fmt,$unit,$calc); |
|
|
if ($result == '1') { $result='EXACT_ANS'; } |
if ($result == '1') { $result='EXACT_ANS'; } |
elsif ($result == '2') { $result='APPROX_ANS'; } |
elsif ($result == '2') { $result='APPROX_ANS'; } |
Line 358 sub sub_string {
|
Line 358 sub sub_string {
|
} |
} |
|
|
sub pow {return $_[0] ** $_[1]; } |
sub pow {return $_[0] ** $_[1]; } |
sub ceil {return (($_[0]-int($_[0]))== 0.0) ? $_[0] : (int($_[0])+ 1); } |
sub ceil {return (($_[0]-int($_[0]))== 0.0) ? $_[0] : (($_[0] > 0) ? (int($_[0])+ 1) : int($_[0])); } |
sub floor {return int($_[0]); } |
sub floor {return (($_[0]-int($_[0]))== 0.0) ? $_[0] : (($_[0] > 0) ? int($_[0]) : (int($_[0])-1)); } |
|
#sub floor {return int($_[0]); } |
|
|
sub format { |
sub format { |
my ($value,$fmt)=@_; |
my ($value,$fmt)=@_; |
Line 367 sub format {
|
Line 368 sub format {
|
} |
} |
|
|
sub map { |
sub map { |
my $num = $#_/2; |
my ($phrase,$dest,$source)=@_; |
my $i; |
my @seed = &random_seed_from_phrase($phrase); |
my @used; |
&random_set_seed(@seed); |
my @permutation; |
my $destct = scalar(@$dest); |
for ($i=0; $i < $num;) { |
if (!$source) { |
$rand = &random(1,$num,1); |
my @output; |
if ( $used[$rand] == '0' ) { |
my @idx = &math_random_permuted_index($destct); |
$i++; |
my $ctr = 0; |
$used[$rand]='1'; |
while ($ctr < $destct) { |
$permutation[$i]=$rand; |
$output[$ctr] = $$dest[$idx[$ctr]]; |
|
$ctr++; |
|
} |
|
return @output; |
|
} else { |
|
my $num = scalar(@$source); |
|
my @idx = &math_random_permuted_index($num); |
|
my $ctr = 0; |
|
my $tot = $num; |
|
$tot = $destct if $destct < $num; |
|
if (ref($$dest[0])) { |
|
while ($ctr < $tot) { |
|
${$$dest[$ctr]} = $$source[$idx[$ctr]]; |
|
$ctr++; |
|
} |
|
} else { |
|
while ($ctr < $tot) { |
|
$$dest[$ctr] = $$source[$idx[$ctr]]; |
|
$ctr++; |
|
} |
|
} |
|
} |
|
} |
|
|
|
sub rmap { |
|
my ($phrase,$dest,$source)=@_; |
|
my @seed = &random_seed_from_phrase($phrase); |
|
&random_set_seed(@seed); |
|
my $destct = scalar(@$dest); |
|
if (!$source) { |
|
my @idx = &math_random_permuted_index($destct); |
|
my $ctr = 0; |
|
my @r_idx; |
|
while ($ctr < $destct) { |
|
$r_idx[$idx[$ctr]] = $ctr; |
|
$ctr++; |
|
} |
|
my @output; |
|
$ctr = 0; |
|
while ($ctr < $destct) { |
|
$output[$ctr] = $$dest[$r_idx[$ctr]]; |
|
$ctr++; |
|
} |
|
return @output; |
|
} else { |
|
my $num = scalar(@$source); |
|
my @idx = &math_random_permuted_index($num); |
|
my $ctr = 0; |
|
my $tot = $num; |
|
$tot = $destct if $destct < $num; |
|
my @r_idx; |
|
while ($ctr < $tot) { |
|
$r_idx[$idx[$ctr]] = $ctr; |
|
$ctr++; |
|
} |
|
$ctr = 0; |
|
if (ref($$dest[0])) { |
|
while ($ctr < $tot) { |
|
${$$dest[$ctr]} = $$source[$r_idx[$ctr]]; |
|
$ctr++; |
|
} |
|
} else { |
|
while ($ctr < $tot) { |
|
$$dest[$ctr] = $$source[$r_idx[$ctr]]; |
|
$ctr++; |
|
} |
|
} |
} |
} |
} |
|
for ( $i=1 ; $i<$num+1 ; $i++ ) { |
|
${$_[$permutation[$i]]}=$_[$i+$num] |
|
} |
|
} |
} |
|
|
sub capa_id { return } |
sub capa_id { return } |
Line 458 sub array_moments {
|
Line 521 sub array_moments {
|
$output[0]=$N; |
$output[0]=$N; |
if ($N <= 1) { |
if ($N <= 1) { |
$output[1]=$input[0]; |
$output[1]=$input[0]; |
$output[1] = "Input array not defined" if ($N == 0); |
$output[1]="Input array not defined" if ($N == 0); |
$output[2]="variance undefined for N<=1"; |
$output[2]="variance undefined for N<=1"; |
$output[3]="skewness undefined for N<=1"; |
$output[3]="skewness undefined for N<=1"; |
$output[4]="kurtosis undefined for N<=1"; |
$output[4]="kurtosis undefined for N<=1"; |