tasks a-s

This commit is contained in:
Ingy döt Net 2013-04-10 23:57:08 -07:00
parent 47bf37c096
commit b83f433714
12433 changed files with 156208 additions and 123 deletions

View file

@ -0,0 +1,51 @@
RAII-class create Err {
variable N E
constructor {number {error 0.0}} {
next
namespace import ::tcl::mathfunc::* ::tcl::mathop::*
variable N $number E [abs $error]
}
method p {} {
return "$N \u00b1 $E"
}
method n {} { return $N }
method e {} { return $E }
method + e {
if {[info object isa object $e]} {
Err return [+ $N [$e n]] [hypot $E [$e e]]
} else {
Err return [+ $N $e] $E
}
}
method - e {
if {[info object isa object $e]} {
Err return [- $N [$e n]] [hypot $E [$e e]]
} else {
Err return [- $N $e] $E
}
}
method * e {
if {[info object isa object $e]} {
set f [* $n [$E n]]
Err return $f [expr {hypot($E*$f/$N, [$e e]*$f/[$e n])}]
} else {
Err return [* $N $e] [abs [* $E $e]]
}
}
method / e {
if {[info object isa object $e]} {
set f [/ $n [$E n]]
Err return $f [expr {hypot($E*$f/$N, [$e e]*$f/[$e n])}]
} else {
Err return [/ $N $e] [abs [/ $E $e]]
}
}
method ** c {
set f [** $N $c]
Err return $f [abs [* $f $c [/ $E $N]]]
}
export + - * / **
}