Diff for /loncom/homework/functionplotresponse.pm between versions 1.63 and 1.64

version 1.63, 2011/05/27 23:00:58 version 1.64, 2011/09/28 23:33:52
Line 751  sub array_index { Line 751  sub array_index {
 #  #
   
 sub populate_arrays {  sub populate_arrays {
     my ($id,$xmin,$xmax)=@_;      my ($id,$xmin,$xmax,$ymin,$ymax)=@_;
     for (my $i=0; $i<=400; $i++) {      for (my $i=0; $i<=400; $i++) {
        $Apache::functionplotresponse::actualxval[$i]=undef;         $Apache::functionplotresponse::actualxval[$i]=undef;
        $Apache::functionplotresponse::func[$i]=undef;         $Apache::functionplotresponse::func[$i]=undef;
Line 779  sub populate_arrays { Line 779  sub populate_arrays {
                 my $xi=&array_index($xmin,$xmax,$xreal);                  my $xi=&array_index($xmin,$xmax,$xreal);
                 if ($xi<$xiold) { return 'no_func'; }                  if ($xi<$xiold) { return 'no_func'; }
                 if (($xi>$xiold) && ($xi>=0) && ($xi<=400)) {                  if (($xi>$xiold) && ($xi>=0) && ($xi<=400)) {
                    if (defined($Apache::functionplotresponse::func[$xi])) { return 'no_func'; }  
                    $xiold=$xi;                     $xiold=$xi;
                    $Apache::functionplotresponse::actualxval[$xi]=$xreal;                     $Apache::functionplotresponse::actualxval[$xi]=$xreal;
 # Function value  # Function value
                    my $funcval=&cubic_hermite($t,@yparms);                     my $funcval=&cubic_hermite($t,@yparms);
   
   # Do we already have a value for this point, and is it different from the new one?
                      if ((defined($Apache::functionplotresponse::func[$xi])) &&
                          (abs($Apache::functionplotresponse::func[$xi]-$funcval)>($ymax-$ymin)/100.)) { 
                          return 'no_func'; 
                      }
   # Okay, remember the new point
                    $Apache::functionplotresponse::func[$xi]=$funcval;                     $Apache::functionplotresponse::func[$xi]=$funcval;
   
                    if (defined($funcval)) {                     if (defined($funcval)) {
                       if ($xi<$Apache::functionplotresponse::functionplotrulelabels{'start'}) {                        if ($xi<$Apache::functionplotresponse::functionplotrulelabels{'start'}) {
                          $Apache::functionplotresponse::functionplotrulelabels{'start'}=$xi;                           $Apache::functionplotresponse::functionplotrulelabels{'start'}=$xi;
Line 1169  sub end_functionplotruleset { Line 1176  sub end_functionplotruleset {
         $Apache::functionplotresponse::ruleslog='';          $Apache::functionplotresponse::ruleslog='';
         $Apache::functionplotresponse::functionplotrulelabels{'start'}=400;          $Apache::functionplotresponse::functionplotrulelabels{'start'}=400;
         $Apache::functionplotresponse::functionplotrulelabels{'end'}=0;          $Apache::functionplotresponse::functionplotrulelabels{'end'}=0;
         if (&populate_arrays($internalid,$xmin,$xmax) eq 'no_func') {          if (&populate_arrays($internalid,$xmin,$xmax,$ymin,$ymax) eq 'no_func') {
            $ad='NOT_FUNCTION';             $ad='NOT_FUNCTION';
         } else {          } else {
            &addlog("Start of function ".&actualval($Apache::functionplotresponse::functionplotrulelabels{'start'},$xmin,$xmax)." (index ".             &addlog("Start of function ".&actualval($Apache::functionplotresponse::functionplotrulelabels{'start'},$xmin,$xmax)." (index ".

Removed from v.1.63  
changed lines
  Added in v.1.64


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>