version 1.18, 2010/10/30 02:31:27
|
version 1.19, 2010/10/30 15:32:36
|
Line 514 sub array_index {
|
Line 514 sub array_index {
|
sub populate_arrays { |
sub populate_arrays { |
my ($id,$xmin,$xmax)=@_; |
my ($id,$xmin,$xmax)=@_; |
for (my $i=0; $i<=200; $i++) { |
for (my $i=0; $i<=200; $i++) { |
undef $Apache::functionplotresponse::func[$i]; |
$Apache::functionplotresponse::func[$i]=undef; |
undef $Apache::functionplotresponse::dfunddx[$i]; |
$Apache::functionplotresponse::dfunddx[$i]=undef; |
undef $Apache::functionplotresponse::d2funcd2x[$i]; |
$Apache::functionplotresponse::d2funcd2x[$i]=undef; |
} |
} |
unless ($xmax>$xmin) { return; } |
unless ($xmax>$xmin) { return 'no_func'; } |
# Run over all splines in response |
# Run over all splines in response |
foreach my $label (split(/\,/,$env{"form.HWVAL_AllSplines_$id"})) { |
foreach my $label (split(/\,/,$env{"form.HWVAL_AllSplines_$id"})) { |
|
my $xiold=-1; |
# Run over all points in spline |
# Run over all points in spline |
for (my $i=0; $i<$env{"form.HWVAL_SplineOrder_".$id."_".$label}; $i++) { |
for (my $i=1; $i<$env{"form.HWVAL_SplineOrder_".$id."_".$label}; $i++) { |
my $xiold=-1; |
|
my $ni=$i+1; |
my $ni=$i+1; |
my @xparms=($env{'form.HWVAL_'.$id.'_'.$label.'P'.$i.'_x'}, |
my @xparms=($env{'form.HWVAL_'.$id.'_'.$label.'P'.$i.'_x'}, |
$env{'form.HWVAL_'.$id.'_'.$label.'S'.$i.'_x'}, |
$env{'form.HWVAL_'.$id.'_'.$label.'S'.$i.'_x'}, |
Line 533 sub populate_arrays {
|
Line 533 sub populate_arrays {
|
$env{'form.HWVAL_'.$id.'_'.$label.'S'.$i.'_y'}, |
$env{'form.HWVAL_'.$id.'_'.$label.'S'.$i.'_y'}, |
$env{'form.HWVAL_'.$id.'_'.$label.'P'.$ni.'_y'}, |
$env{'form.HWVAL_'.$id.'_'.$label.'P'.$ni.'_y'}, |
$env{'form.HWVAL_'.$id.'_'.$label.'S'.$ni.'_y'}); |
$env{'form.HWVAL_'.$id.'_'.$label.'S'.$ni.'_y'}); |
|
|
# Run in small steps over spline parameter |
# Run in small steps over spline parameter |
for (my $t=0; $t<=1; $t+=0.00025) { |
for (my $t=0; $t<=1; $t+=0.00025) { |
my $xi=&array_index($xmin,$xmax,&cubic_hermite($t,@xparms)); |
my $xi=&array_index($xmin,$xmax,&cubic_hermite($t,@xparms)); |
if ($xi<$xiold-5) { return 'no_func'; } |
if ($xi<$xiold) { return 'no_func'; } |
if ($xi>$xiold) { |
if (($xi>$xiold) && ($xi>=0) && ($xi<=200)) { |
|
if (defined($Apache::functionplotresponse::func[$xi])) { return 'no_func'; } |
$xiold=$xi; |
$xiold=$xi; |
$Apache::functionplotresponse::func[$xi]=&cubic_hermite($t,@yparms); |
$Apache::functionplotresponse::func[$xi]=&cubic_hermite($t,@yparms); |
} |
} |