summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2016-05-30 21:28:42 +0200
committerErich Eckner <git@eckner.net>2016-05-30 21:28:42 +0200
commit1011a5fadfe82a0fab23714be92509d070251195 (patch)
tree7328b7747af1d93341fd13f5ce8b0d82053a32d8
parent4547093c9fcc350c3e5ab52e3f01dfa569524baf (diff)
downloadunits-1011a5fadfe82a0fab23714be92509d070251195.tar.xz
gmp-Zeug aus lowlevelunit.pas in gmpextras.pas ausgelagert
-rw-r--r--gmpextras.pas44
-rw-r--r--lowlevelunit.pas27
2 files changed, 45 insertions, 26 deletions
diff --git a/gmpextras.pas b/gmpextras.pas
new file mode 100644
index 0000000..4565682
--- /dev/null
+++ b/gmpextras.pas
@@ -0,0 +1,44 @@
+unit gmpextras;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, gmp;
+
+function mpfToStr(f: mpf_t): string;
+function mpfMyRoot(rad: mpf_t; wzlExp: int64): extended;
+
+implementation
+
+uses
+ math;
+
+// allgemeine Funktionen *******************************************************
+
+function mpfToStr(f: mpf_t): string;
+var
+ ex: mp_exp_t;
+ off: byte;
+begin
+ result:=mpf_get_str(nil,ex,10,0,f);
+ off:=1+byte(pos('-',result)=1);
+ if result='' then
+ result:='0'
+ else if ex=1 then
+ result:=copy(result,1,off)+','+copy(result,off+1,length(result)-off)
+ else
+ result:=copy(result,1,off)+','+copy(result,off+1,length(result)-off)+' * 10^'+inttostr(ex-1);
+end;
+
+function mpfMyRoot(rad: mpf_t; wzlExp: int64): extended;
+var
+ ex: mp_exp_t;
+begin
+ result:=power(mpf_get_d_2exp(ex,rad),1/wzlExp);
+ result:=result*power(2,ex/wzlExp);
+end;
+
+end.
+
diff --git a/lowlevelunit.pas b/lowlevelunit.pas
index c928452..60f9e9e 100644
--- a/lowlevelunit.pas
+++ b/lowlevelunit.pas
@@ -5,7 +5,7 @@ unit lowlevelunit;
interface
uses
- math, Classes, SysUtils, gmp, RegExpr, process, FPimage;
+ math, Classes, SysUtils, RegExpr, process, FPimage;
type
generic tArray<T> = array of T;
@@ -42,9 +42,7 @@ operator = (x1,x2: tIntPoint): boolean;
operator = (x1,x2: tExtPoint): boolean;
function signSqr(x: extended): extended; inline;
-function mpfToStr(f: mpf_t): string;
function myTimeToStr(t: extended): string;
-function mpfMyRoot(rad: mpf_t; wzlExp: int64): extended;
function cmpStr(s1,s2: string): longint;
function mitte(s1,s2: string): string;
function myFloatToStr(x: extended): string; overload;
@@ -151,21 +149,6 @@ begin
result:=sign(x)*sqr(x);
end;
-function mpfToStr(f: mpf_t): string;
-var
- ex: mp_exp_t;
- off: byte;
-begin
- result:=mpf_get_str(nil,ex,10,0,f);
- off:=1+byte(pos('-',result)=1);
- if result='' then
- result:='0'
- else if ex=1 then
- result:=copy(result,1,off)+','+copy(result,off+1,length(result)-off)
- else
- result:=copy(result,1,off)+','+copy(result,off+1,length(result)-off)+' * 10^'+inttostr(ex-1);
-end;
-
function myTimeToStr(t: extended): string;
var
tim: int64;
@@ -198,14 +181,6 @@ begin
result:=inttostr(tim)+'Woche'+result;
end;
-function mpfMyRoot(rad: mpf_t; wzlExp: int64): extended;
-var
- ex: mp_exp_t;
-begin
- result:=power(mpf_get_d_2exp(ex,rad),1/wzlExp);
- result:=result*power(2,ex/wzlExp);
-end;
-
function cmpStr(s1,s2: string): longint;
var
i: longint;