#=============================================== # mLSQ #=============================================== package mLSQ; use TkFittingSimple; @ISA = qw(TkFittingSimple); #公開したいサブルーチン #@EXPORT = qw(DelSpace Reduce01 MakePath RegExpQuote); use strict; #============================================================ # 大域変数・変数等取得関数 #============================================================ my $ProgramName = "m-order LSQ/2011"; my @Vars = ( { Name => "a0", Val => 0.0, ID => 1, Scale => 0.1, Min => '', Max => '' }, { Name => "a1", Val => 0.0, ID => 1, Scale => 0.1, Min => '', Max => '' }, { Name => "a2", Val => 0.0, ID => 1, Scale => 0.1, Min => '', Max => '' }, { Name => "a3", Val => 0.0, ID => 0, Scale => 0.1, Min => '', Max => '' }, { Name => "a4", Val => 0.0, ID => 0, Scale => 0.1, Min => '', Max => '' }, { Name => "a5", Val => 0.0, ID => 0, Scale => 0.1, Min => '', Max => '' }, ); #============================================================ # コンストラクタ、デストラクタ #============================================================ #呼び出されることはない sub new { my ($class, $app, @a) = @_; my $self = TkFittingSimple->new($app, $ProgramName, @a); my $this = bless $self, $class; $this->AddParameters2(\@Vars, nCheckEntryColumn => 3); return $this; } sub DESTROY { my $this = shift; $this->SUPER::DESTROY(@_); } #============================================================ # 継承クラスで定義しなおす関数 #============================================================ sub CalY { my ($this, $x, $pVars) = @_; my $y = $pVars->[0]; for(my $j = 1 ; $j < @$pVars ; $j++) { $y += $pVars->[$j] * $x; $x *= $x; } return $y; } 1;