aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-electronics')
-rw-r--r--sci-electronics/tnt/ChangeLog33
-rw-r--r--sci-electronics/tnt/Manifest31
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-bem-nmmtl.patch11
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-calc.patch503
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-docs.patch66
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-f77.patch14
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-gui.patch24
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-namespaces.patch230
-rw-r--r--sci-electronics/tnt/files/tnt-1.2.2-tkcon.patch16
-rw-r--r--sci-electronics/tnt/metadata.xml9
-rw-r--r--sci-electronics/tnt/tnt-1.2.2.ebuild66
11 files changed, 1003 insertions, 0 deletions
diff --git a/sci-electronics/tnt/ChangeLog b/sci-electronics/tnt/ChangeLog
new file mode 100644
index 000000000..d5fd56c42
--- /dev/null
+++ b/sci-electronics/tnt/ChangeLog
@@ -0,0 +1,33 @@
+# ChangeLog for sci-electronics/tnt
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+ 24 Feb 2011; Andreas K. Huettel <dilfridge@gentoo.org> tnt-1.2.2.ebuild,
+ -files/tnt-1.2.2-Makefile-am.patch,
+ -files/tnt-1.2.2-doc-Makefile-am.patch, +files/tnt-1.2.2-docs.patch,
+ +files/tnt-1.2.2-f77.patch, +files/tnt-1.2.2-gui.patch,
+ -files/tnt-1.2.2-gui-splash.patch, -files/tnt-1.2.2-gui_help.patch:
+ General cleanup and simplification
+
+ 24 Feb 2011; Andreas K. Huettel <dilfridge@gentoo.org> tnt-1.2.2.ebuild,
+ +files/tnt-1.2.2-calc.patch, -files/tnt-1.2.2-calc-cap-calcCAP.patch,
+ -files/tnt-1.2.2-calc-cap-cmplxmat.patch,
+ -files/tnt-1.2.2-calc-cap-cmplxvec.patch,
+ -files/tnt-1.2.2-calc-cap-complex-header.patch,
+ -files/tnt-1.2.2-calc-cap-complex-source.patch,
+ -files/tnt-1.2.2-calc-cap-data.patch,
+ -files/tnt-1.2.2-calc-rl-calcRL.patch,
+ -files/tnt-1.2.2-calc-rl-cmplxmat.patch,
+ -files/tnt-1.2.2-calc-rl-cmplxvec.patch,
+ -files/tnt-1.2.2-calc-rl-complex.patch,
+ -files/tnt-1.2.2-calc-rl-complex-header.patch,
+ -files/tnt-1.2.2-calc-rl-data.patch,
+ -files/tnt-1.2.2-calc-rl-hankel.patch,
+ -files/tnt-1.2.2-calc-rl-kelvin.patch, +files/tnt-1.2.2-namespaces.patch:
+ Started summarizing patches
+
+ 24 Feb 2011; Andreas K. Huettel <dilfridge@gentoo.org> tnt-1.2.2.ebuild:
+ Clean up keywords and dependencies
+
+ 24 Feb 2011; Andreas K. Huettel <dilfridge@gentoo.org>
+ Added ebuild and patch files from George Reitsma
diff --git a/sci-electronics/tnt/Manifest b/sci-electronics/tnt/Manifest
new file mode 100644
index 000000000..05147b6df
--- /dev/null
+++ b/sci-electronics/tnt/Manifest
@@ -0,0 +1,31 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX tnt-1.2.2-bem-nmmtl.patch 456 RMD160 8463540d64226a8bf769a66d7fdd9fd5daf61cb6 SHA1 8b08be79fee98f1e06c5ded2e4fa24aacd8c6007 SHA256 f6f0bde8df73c524545e2290958a9612692f2a76114ed1ba7a6b984b81cb1dd1
+AUX tnt-1.2.2-calc.patch 14487 RMD160 9234f56886cb95db4c1d1501250dc2f4954214d3 SHA1 e9b3b58a9409986b767a6b9678f2d37d8201fcb3 SHA256 daee74c5c2fb46a9a3742be5d9d8441260119dddcb52e9a06ddfe54147f5b735
+AUX tnt-1.2.2-docs.patch 1970 RMD160 ecfa0e2c973fcdcda155de3bf49eab1ef29b40a6 SHA1 28c2b8aa2ec2ad94e4e38ae57f514fc3ad03a4ce SHA256 35741bb44d5c97f718830fbfa63ed23f00c84cf4e5c1007bfa997f0e3f842520
+AUX tnt-1.2.2-f77.patch 482 RMD160 8f45a248f511bdd5aae54d0511a6f23abfbfdbc2 SHA1 f6d9f5b22d85fc7ac8d84845558497514009aab2 SHA256 b80cd8fdf9000ba115511b4b440d929dcdb55d8778bf01c52a1082607fd82362
+AUX tnt-1.2.2-gui.patch 900 RMD160 acfa4c03aa92c97b257f3d7d5a08e01d94834e77 SHA1 8486e487c10d29b6d3c09bb219b030d32039d6cf SHA256 d1c3cc7cf0f6d084d583502aa67a10687e1fbcd5a5833aca986b3c2d3fd37a20
+AUX tnt-1.2.2-namespaces.patch 6862 RMD160 2a32bb175e4769f35bd9d91521da7c9ac13c11d9 SHA1 7a181abc878951f631d576188144e44422743eea SHA256 d777646d0e7a43aee5c68e5061a85cd99be45cd539b683afff7752d7581d16c1
+AUX tnt-1.2.2-tkcon.patch 447 RMD160 d3b708d681a5a468c9f17b27dba6c273e3b472ad SHA1 55e8f6bb54d4e59ce73620d2909d6d8b23197770 SHA256 1302823cd11ad31dcca115abb93a6f1c07299872bf5d48d51815b5436bbee846
+DIST tnt-1.2.2.tar.gz 2020099 RMD160 1a2ba68a93ee21590bb25a3eacf85d3773c3e77d SHA1 bd089863ca2cd939009253e83f4ab75317191047 SHA256 cbb418d0de4f244d8174e8826e4d8272bce753f50431c9d87af08928f5817445
+EBUILD tnt-1.2.2.ebuild 1560 RMD160 cf0dc81a332f776ea0d74861a840b0f65c5c5055 SHA1 d64b470d0edf236e2447e646c4cc31c81d3a6579 SHA256 db439bd394e69329ace1f76cba887df819c1f67a9a4e9f01cc04eca743efe15c
+MISC ChangeLog 1363 RMD160 4ca3eafee7154329f2c59ee6fc41623197ff7c73 SHA1 a6406509983d84621dddd59c816f8be1e8a6ae83 SHA256 62962a9ddbe3996c739b676a9cc8fd04ce270988f6d09bc466c7e5d13f7e484f
+MISC metadata.xml 262 RMD160 24e1a7cfcbca1e2f41e8c062c448d9150f6320b8 SHA1 951224aa9eb92e898209936836a18e844ae1f169 SHA256 7e8dde52c550f9cfc6d74b78c19f6900a8cc241f2bf136610a4fc3b0aa95f3f5
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iQIcBAEBAgAGBQJNZun8AAoJENwGBM22xffev5wQAKJXT2pZ1zIjiUJI+Nx5pOtH
+MYpNmrLRedxCD/awO/WU60PfAdCxXIpxZ3lQlheAy55sKV2U2P0Zspw128ZCxcav
+IQU5XWI2uiF4RDF/m28mRVYz15BsLx9uRNogkWko4ewLNgr8Z6ulP4Vhpli+wbdl
+ZTpvNmfvhqEG1DWLwycy/pk3IGn+zdlbyPOAfI9RKjjEnVIQVfgxMiW6B2+4eAc/
+1Fze8g6hc7TkqLZjB8dxyddu6tZhzAkG3HNDYkJSLKxkECcusznoMvjqEt1h6X35
+hp+PdcZXPO6OyiP8wIrInDT50VQ/uAhG6H1LKKalvD5u2Q0rWQzteIKeOWoYbWpi
+KmBU33urUvJq61H2J5Aqb4eAZ06IPVRUWe7keDbomuK40DoR8BhwiTSBJlVOfS/X
+odjXKK1GvEIHNZ2JugycAO4/D/FwTJNnqS64+DCdz4i1uPmplVlXMpxY71fYTAki
+jXN6rR6R3QCPRzbW8jZgS1XdhQhnv15ZsfKLxraek93sB373Ap3Kuu08HamJ9oHK
+t8i54gGucknDvWwoMwXWIK47SE+5+R6YC2thIu9xFmx6bCtti+0f5MuTOCp/C2X7
+x6ruqnphajtyeoX5Sup1NxznPKixebhyRl3iGgvzXFw9ZAUpOyfOPy8J1DyC6wz7
+rrxbsEsGvSVAtqfdsLjf
+=L4xp
+-----END PGP SIGNATURE-----
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-bem-nmmtl.patch b/sci-electronics/tnt/files/tnt-1.2.2-bem-nmmtl.patch
new file mode 100644
index 000000000..c990c462a
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-bem-nmmtl.patch
@@ -0,0 +1,11 @@
+--- bem/src/nmmtl.cpp.org 2011-02-19 16:12:58.000000000 -0800
++++ bem/src/nmmtl.cpp 2011-02-19 16:15:36.000000000 -0800
+@@ -352,7 +352,7 @@
+ sprintf (filespec, "%s.result", filename);
+ if( (output_file1 = fopen(filespec,"w")) == NULL )
+ {
+- printf ("*** Could not open %s for output ***\n");
++ printf ("*** Could not open %s for output ***\n", filespec);
+ return 0; /* Fatal error; could not open output file */
+ }
+
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-calc.patch b/sci-electronics/tnt/files/tnt-1.2.2-calc.patch
new file mode 100644
index 000000000..59e11c4f2
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-calc.patch
@@ -0,0 +1,503 @@
+# Adapt this old source to the new C++ standards
+# These patches fix a c++ scope issue, gcc was for some reason
+# not able to discover friend function of class Complex.
+# This has been solved by making this functions a member instead of a friend.
+# George Reitsma <g.p.reitsma@gmail.com>
+
+diff -ruN tnt-1.2.2-0-vanilla/calcCAP/src/calcCAP.cpp tnt-1.2.2/calcCAP/src/calcCAP.cpp
+--- tnt-1.2.2-0-vanilla/calcCAP/src/calcCAP.cpp 2004-07-22 21:29:12.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/calcCAP.cpp 2011-02-24 19:29:44.000000000 +0100
+@@ -14,6 +14,8 @@
+ #endif
+ #include <time.h>
+ #include <stdio.h>
++#include <string.h>
++using namespace std;
+
+ /********************** Global variables *******************/
+
+@@ -287,7 +289,7 @@
+
+ for ( i1 = 0; i1 < Nc; i1 ++ ) {
+
+- sumc[i1] = cmplx( 0.0, 0.0 );
++ sumc[i1] = Complex( 0.0, 0.0 );
+
+
+ for ( j1 = 0; j1 < Nw; j1 ++ ) {
+diff -ruN tnt-1.2.2-0-vanilla/calcCAP/src/cmplxmat.cpp tnt-1.2.2/calcCAP/src/cmplxmat.cpp
+--- tnt-1.2.2-0-vanilla/calcCAP/src/cmplxmat.cpp 2004-07-22 21:29:12.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/cmplxmat.cpp 2011-02-24 19:29:44.000000000 +0100
+@@ -378,7 +378,7 @@
+ Matrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::real(elem(i,j));
++ result(i,j)=elem(i,j).real(); // result(i,j)=::real(elem(i,j));
+ return (result);
+ }
+
+@@ -387,7 +387,7 @@
+ Matrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::imag(elem(i,j));
++ result(i,j)=elem(i,j).imag(); // result(i,j)=::imag(elem(i,j));
+ return (result);
+ }
+
+@@ -396,7 +396,7 @@
+ Matrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::cabs(elem(i,j));
++ result(i,j)=elem(i,j).cabs(); // result(i,j)=::cabs(elem(i,j));
+ return (result);
+ }
+
+@@ -405,7 +405,7 @@
+ CmplxMatrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::conjg(elem(i,j));
++ result(i,j)=elem(i,j).conjg(); // result(i,j)=::conjg(elem(i,j));
+ return (result);
+ }
+
+diff -ruN tnt-1.2.2-0-vanilla/calcCAP/src/cmplxvec.cpp tnt-1.2.2/calcCAP/src/cmplxvec.cpp
+--- tnt-1.2.2-0-vanilla/calcCAP/src/cmplxvec.cpp 2004-07-22 21:29:12.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/cmplxvec.cpp 2011-02-24 19:29:44.000000000 +0100
+@@ -287,7 +287,7 @@
+
+ int n = d;
+ CmplxVector tmp(n);
+- for(int i = 0; i < n; i++) tmp[i] = ::conjg(v[i]);
++ for(int i = 0; i < n; i++) tmp[i] = v[i].conjg(); // tmp[i] = ::conjg(v[i]);
+ return (tmp);
+ }
+
+@@ -295,7 +295,7 @@
+
+ Vector tmp(d);
+ int n = d;
+- while(n--) tmp[n] = ::real(v[n]);
++ while(n--) tmp[n] = v[n].real(); // tmp[n] = ::real(v[n]);
+ return (tmp);
+ }
+
+@@ -303,7 +303,7 @@
+
+ Vector tmp(d);
+ int n = d;
+- while(n--) tmp[n] = ::imag(v[n]);
++ while(n--) tmp[n] = v[n].imag(); // tmp[n] = ::imag(v[n]);
+ return (tmp);
+ }
+
+@@ -311,7 +311,7 @@
+
+ Vector result(d);
+ for(int i = 0; i < d; i++)
+- result[i]=::cabs(v[i]);
++ result[i]=v[i].cabs(); // result[i]=::cabs(v[i]);
+ return (result);
+ }
+
+diff -ruN tnt-1.2.2-0-vanilla/calcCAP/src/complex.cpp tnt-1.2.2/calcCAP/src/complex.cpp
+--- tnt-1.2.2-0-vanilla/calcCAP/src/complex.cpp 2002-10-10 15:46:00.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/complex.cpp 2011-02-24 19:29:44.000000000 +0100
+@@ -203,6 +203,54 @@
+ return(result);
+ }
+
++double Complex::real(void) {
++
++ return(re);
++}
++
++double Complex::imag(void) {
++
++ return(im);
++}
++
++double Complex::arg(void) {
++
++ return((im == 0.0)&&(re == 0.0) ? 0 : atan2(im, re));
++}
++
++double Complex::cabs(void) {
++
++ double x, y, ans, temp;
++ x = fabs(re);
++ y = fabs(im);
++ if (x == 0.0)
++ ans = y;
++ else if (y == 0.0)
++ ans = x;
++ else if (x > y) {
++ temp = y/x;
++ ans = x*sqrt(1.0+temp*temp);
++ } else {
++ temp = x/y;
++ ans = y*sqrt(1.0+temp*temp);
++ }
++ return ans;
++}
++
++double Complex::cabsm(void) {
++
++ return(sqrt(re*re + im*im));
++}
++
++Complex Complex::conjg(void) {
++
++ Complex com;
++ com.re = re;
++ com.im = -im;
++ return(com);
++}
++
++
+ /********************* friends *****************************/
+
+ Complex operator*(const double& r, const Complex& c) {
+diff -ruN tnt-1.2.2-0-vanilla/calcCAP/src/complex.h tnt-1.2.2/calcCAP/src/complex.h
+--- tnt-1.2.2-0-vanilla/calcCAP/src/complex.h 2002-10-10 15:46:00.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/complex.h 2011-02-24 19:29:44.000000000 +0100
+@@ -1,10 +1,13 @@
+ #ifndef _complex__h_
+ #define _complex__h_
+
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+
+ class Complex
+ {
++ public:
++
+ friend Complex operator*(const double&, const Complex&);
+ friend Complex operator+(const double&, const Complex&);
+ friend Complex operator-(const double&, const Complex&);
+@@ -16,6 +19,14 @@
+ friend double cabs(const Complex&);
+ friend double cabsm(const Complex&);
+ friend Complex conjg(const Complex&);
++
++ double real(void);
++ double imag(void);
++ double arg(void);
++ double cabs(void);
++ double cabsm(void);
++ Complex conjg(void);
++
+ friend Complex cmplx(const double,const double);
+ friend Complex polar(const double&, const double&);
+ friend Complex cos(const Complex&);
+@@ -37,7 +48,6 @@
+ friend ostream& operator<<(ostream&, Complex&);
+ friend istream& operator>>(istream&, Complex&);
+
+- public:
+ Complex(){} // constructors
+ Complex(double r, double i = 0.0);
+ Complex(const Complex&);
+diff -ruN tnt-1.2.2-0-vanilla/calcCAP/src/data.cpp tnt-1.2.2/calcCAP/src/data.cpp
+--- tnt-1.2.2-0-vanilla/calcCAP/src/data.cpp 2002-10-10 15:46:01.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/data.cpp 2011-02-24 19:29:44.000000000 +0100
+@@ -260,7 +260,7 @@
+ }
+ }
+
+- Ic = cmplx( 0.0, 1.0 );
++ Ic = Complex( 0.0, 1.0 );
+
+ Nc4 = 11*Nh+1;
+ step_w = 1.0/power( 2.0, J );
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/calcRL.cpp tnt-1.2.2/calcRL/src/calcRL.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/calcRL.cpp 2004-07-22 21:29:37.000000000 +0200
++++ tnt-1.2.2/calcRL/src/calcRL.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -43,7 +43,8 @@
+ #endif
+ #include <time.h>
+ #include <stdio.h>
+-
++#include <string.h>
++using namespace std;
+ /********************** Global variables *******************/
+
+ int Nc, Die, Rec, Cir, Tri, Ell, Pol, Gnd, Tra;
+@@ -564,7 +565,7 @@
+ tmp4 = Circum[i] / double(Nw);
+ tmpsum1 = 0.0;
+ tmpsum2 = 0.0;
+- sum2[i] = cmplx( 0.0, 0.0 );
++ sum2[i] = Complex( 0.0, 0.0 );
+
+ for (j = 0; j < Nw; j ++) {
+
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/cmplxmat.cpp tnt-1.2.2/calcRL/src/cmplxmat.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/cmplxmat.cpp 2004-07-22 21:29:37.000000000 +0200
++++ tnt-1.2.2/calcRL/src/cmplxmat.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -386,7 +386,7 @@
+ Matrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::real(elem(i,j));
++ result(i,j)=elem(i,j).real(); // result(i,j)=::real(elem(i,j));
+ return (result);
+ }
+
+@@ -395,7 +395,7 @@
+ Matrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::imag(elem(i,j));
++ result(i,j)=elem(i,j).imag(); // result(i,j)=::imag(elem(i,j));
+ return (result);
+ }
+
+@@ -404,7 +404,7 @@
+ Matrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::cabs(elem(i,j));
++ result(i,j)=elem(i,j).cabs(); // result(i,j)=::cabj(elem(i,j));
+ return (result);
+ }
+
+@@ -413,7 +413,7 @@
+ CmplxMatrix result(d_i,d_j);
+ for(int i = 0; i < d_i; i++)
+ for(int j = 0; j < d_j; j++)
+- result(i,j)=::conjg(elem(i,j));
++ result(i,j)=elem(i,j).conjg(); // result(i,j)=::conjg(elem(i,j));
+ return (result);
+ }
+
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/cmplxvec.cpp tnt-1.2.2/calcRL/src/cmplxvec.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/cmplxvec.cpp 2004-07-22 21:29:37.000000000 +0200
++++ tnt-1.2.2/calcRL/src/cmplxvec.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -289,7 +289,7 @@
+
+ int n = d;
+ CmplxVector tmp(n);
+- for(int i = 0; i < n; i++) tmp[i] = ::conjg(v[i]);
++ for(int i = 0; i < n; i++) tmp[i] = v[i].conjg(); // tmp[i] = ::conjg(v[i]);
+ return (tmp);
+ }
+
+@@ -297,7 +297,7 @@
+
+ Vector tmp(d);
+ int n = d;
+- while(n--) tmp[n] = ::real(v[n]);
++ while(n--) tmp[n] = v[n].real(); // tmp[n] = ::real(v[n]);
+ return (tmp);
+ }
+
+@@ -305,7 +305,7 @@
+
+ Vector tmp(d);
+ int n = d;
+- while(n--) tmp[n] = ::imag(v[n]);
++ while(n--) tmp[n] = v[n].imag(); // tmp[n] = ::imag(v[n])
+ return (tmp);
+ }
+
+@@ -313,7 +313,7 @@
+
+ Vector result(d);
+ for(int i = 0; i < d; i++)
+- result[i]=::cabs(v[i]);
++ result[i]=v[i].cabs(); // result[i]=::cabs(v[i]);
+ return (result);
+ }
+
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/complex.cpp tnt-1.2.2/calcRL/src/complex.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/complex.cpp 2002-10-09 22:23:38.000000000 +0200
++++ tnt-1.2.2/calcRL/src/complex.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -17,6 +17,53 @@
+
+ /*********************** members *********************************/
+
++double Complex::real(void) {
++
++ return(re);
++}
++
++double Complex::imag(void) {
++
++ return(im);
++}
++
++double Complex::arg(void) {
++
++ return((im == 0.0)&&(re == 0.0) ? 0 : atan2(im, re));
++}
++
++double Complex::cabs(void) {
++
++ double x, y, ans, temp;
++ x = fabs(re);
++ y = fabs(im);
++ if (x == 0.0)
++ ans = y;
++ else if (y == 0.0)
++ ans = x;
++ else if (x > y) {
++ temp = y/x;
++ ans = x*sqrt(1.0+temp*temp);
++ } else {
++ temp = x/y;
++ ans = y*sqrt(1.0+temp*temp);
++ }
++ return ans;
++}
++
++double Complex::cabsm(void) {
++
++ return(sqrt(re*re + im*im));
++}
++
++Complex Complex::conjg(void) {
++
++ Complex com;
++ com.re = re;
++ com.im = -im;
++ return(com);
++}
++
+ /********************* friends *****************************/
+
+ Complex operator*(const double& r, const Complex& c) {
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/complex.h tnt-1.2.2/calcRL/src/complex.h
+--- tnt-1.2.2-0-vanilla/calcRL/src/complex.h 2002-10-09 22:23:39.000000000 +0200
++++ tnt-1.2.2/calcRL/src/complex.h 2011-02-24 19:29:53.000000000 +0100
+@@ -3,10 +3,12 @@
+
+ #include <stdlib.h>
+ #include <math.h>
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+
+ class Complex
+ {
++ public:
+ friend Complex operator*(const double&, const Complex&);
+ friend Complex operator+(const double&, const Complex&);
+ friend Complex operator-(const double&, const Complex&);
+@@ -14,6 +16,14 @@
+
+ friend double real(const Complex&);
+ friend double imag(const Complex&);
++ double real(void);
++ double imag(void);
++ double arg(void);
++ double cabs(void);
++ double cabsm(void);
++ Complex conjg(void);
++
++
+ friend double arg(const Complex&);
+ friend double cabs(const Complex&);
+ friend double cabsm(const Complex&);
+@@ -39,7 +49,7 @@
+ friend ostream& operator<<(ostream&, Complex&);
+ friend istream& operator>>(istream&, Complex&);
+
+- public:
++
+ Complex(){} // constructors
+ Complex(double r, double i = 0.0);
+ Complex(const Complex&);
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/data.cpp tnt-1.2.2/calcRL/src/data.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/data.cpp 2004-07-22 21:29:37.000000000 +0200
++++ tnt-1.2.2/calcRL/src/data.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -251,7 +251,7 @@
+ }
+ }
+
+- Ic = cmplx( 0.0, 1.0 );
++ Ic = Complex( 0.0, 1.0 );
+
+ Nc4 = 11*Nh+1;
+ step_w = 1.0/power( 2.0, J );
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/hankel.cpp tnt-1.2.2/calcRL/src/hankel.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/hankel.cpp 2002-10-09 22:23:40.000000000 +0200
++++ tnt-1.2.2/calcRL/src/hankel.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -19,7 +19,7 @@
+
+ hank01( vj0, vy0, x, 1 );
+
+- return( cmplx( vj0, -vy0 ) );
++ return( Complex( vj0, -vy0 ) );
+ }
+
+ /***** Function Hank21 - to calculate H^(2)_1(x), x - double ****/
+@@ -30,7 +30,7 @@
+
+ hank11( vj1, vy1, x, 1 );
+
+- return( cmplx( vj1, -vy1 ) );
++ return( Complex( vj1, -vy1 ) );
+ }
+
+ /***** Function Hank10 - to calculate H^(1)_0(x), x - double ****/
+@@ -41,7 +41,7 @@
+
+ hank01( vj0, vy0, x, 1 );
+
+- return( cmplx( vj0, vy0 ) );
++ return( Complex( vj0, vy0 ) );
+ }
+
+ /***** Function Hank11 - to calculate H^(1)_1(x), x - double ****/
+@@ -52,7 +52,7 @@
+
+ hank11( vj1, vy1, x, 1 );
+
+- return( cmplx( vj1, vy1 ) );
++ return( Complex( vj1, vy1 ) );
+ }
+
+ int hank01( double& vj0, double& vy0, double xd, int n ) {
+diff -ruN tnt-1.2.2-0-vanilla/calcRL/src/kelvin.cpp tnt-1.2.2/calcRL/src/kelvin.cpp
+--- tnt-1.2.2-0-vanilla/calcRL/src/kelvin.cpp 2002-10-09 22:23:42.000000000 +0200
++++ tnt-1.2.2/calcRL/src/kelvin.cpp 2011-02-24 19:29:53.000000000 +0100
+@@ -332,20 +332,20 @@
+ return(keip);
+ }
+
+-static Complex seta_p1 = cmplx(0.0,-0.3926991);
+-static Complex seta_p2 = cmplx(0.0110486,0.0);
+-static Complex seta_p3 = cmplx(0.0,-0.0009765);
+-static Complex seta_p4 = cmplx(-0.0000906,-0.0000901);
+-static Complex seta_p5 = cmplx(-0.0000252,0.0);
+-static Complex seta_p6 = cmplx(-0.0000034,0.0000051);
+-static Complex seta_p7 = cmplx(0.0000006,.0000019);
+-static Complex dphi_p1 = cmplx(0.7071068,0.7071068);
+-static Complex dphi_p2 = cmplx(-0.0625001,-0.0000001);
+-static Complex dphi_p3 = cmplx(-0.0013813,0.0013811);
+-static Complex dphi_p4 = cmplx(0.0000005,0.0002452);
+-static Complex dphi_p5 = cmplx(0.0000346,0.0000338);
+-static Complex dphi_p6 = cmplx(0.0000117,-0.0000024);
+-static Complex dphi_p7 = cmplx(0.0000016,-0.0000032);
++static Complex seta_p1 = Complex(0.0,-0.3926991);
++static Complex seta_p2 = Complex(0.0110486,0.0);
++static Complex seta_p3 = Complex(0.0,-0.0009765);
++static Complex seta_p4 = Complex(-0.0000906,-0.0000901);
++static Complex seta_p5 = Complex(-0.0000252,0.0);
++static Complex seta_p6 = Complex(-0.0000034,0.0000051);
++static Complex seta_p7 = Complex(0.0000006,.0000019);
++static Complex dphi_p1 = Complex(0.7071068,0.7071068);
++static Complex dphi_p2 = Complex(-0.0625001,-0.0000001);
++static Complex dphi_p3 = Complex(-0.0013813,0.0013811);
++static Complex dphi_p4 = Complex(0.0000005,0.0002452);
++static Complex dphi_p5 = Complex(0.0000346,0.0000338);
++static Complex dphi_p6 = Complex(0.0000117,-0.0000024);
++static Complex dphi_p7 = Complex(0.0000016,-0.0000032);
+
+
+
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-docs.patch b/sci-electronics/tnt/files/tnt-1.2.2-docs.patch
new file mode 100644
index 000000000..77fe50445
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-docs.patch
@@ -0,0 +1,66 @@
+diff -ruN tnt-1.2.2-5-tkcon/Makefile.am tnt-1.2.2/Makefile.am
+--- tnt-1.2.2-5-tkcon/Makefile.am 2004-07-22 16:23:32.000000000 +0200
++++ tnt-1.2.2/Makefile.am 2011-02-24 23:43:41.000000000 +0100
+@@ -51,14 +51,16 @@
+ # a prefix. If not, then I suppose README will go into
+ # /usr.
+ #---------------------------------------------------------------
+-appdocsdir = $(prefix)
+-appdocs_DATA = \
+- AUTHORS$(TXTEXT) \
+- COPYING$(TXTEXT) \
+- ChangeLog$(TXTEXT) \
+- NEWS$(TXTEXT) \
+- README$(TXTEXT) \
+- THANKS$(TXTEXT)
++#
++# Portage takes care for this
++#appdocsdir = $(prefix)
++#appdocs_DATA = \
++# AUTHORS$(TXTEXT) \
++# COPYING$(TXTEXT) \
++# ChangeLog$(TXTEXT) \
++# NEWS$(TXTEXT) \
++# README$(TXTEXT) \
++# THANKS$(TXTEXT)
+
+ #---------------------------------------------------------------
+ # Convert application documents to text files on Windows.
+diff -ruN tnt-1.2.2-5-tkcon/doc/Makefile.am tnt-1.2.2/doc/Makefile.am
+--- tnt-1.2.2-5-tkcon/doc/Makefile.am 2004-07-21 17:45:26.000000000 +0200
++++ tnt-1.2.2/doc/Makefile.am 2011-02-24 23:43:45.000000000 +0100
+@@ -43,7 +43,7 @@
+ #
+ #---------------------------------------------------------------
+
+-docdir = $(prefix)/doc
++#docdir = $(prefix)/doc
+ doc_DATA = \
+ user-guide.pdf
+
+@@ -73,15 +73,17 @@
+ pdflatex $*
+ latex2html -split 4 -show_section_numbers -local_icons $<
+
++# Removed, because portage takes care of it.
++#
+ # Custom installation rule
+-install-data-local:
+- for f in $(doc_DATA); do \
+- $(mkinstalldirs) $(docdir); \
+- $(INSTALL_DATA) $$f $(docdir)/$$f; \
+- d=`basename $$f .pdf`; \
+- $(mkinstalldirs) $(docdir)/$$d; \
+- $(INSTALL_DATA) $$d/* $(docdir)/$$d; \
+- done
++#install-data-local:
++# for f in $(doc_DATA); do \
++# $(mkinstalldirs) $(docdir); \
++# $(INSTALL_DATA) $$f $(docdir)/$$f; \
++# d=`basename $$f .pdf`; \
++# $(mkinstalldirs) $(docdir)/$$d; \
++# $(INSTALL_DATA) $$d/* $(docdir)/$$d; \
++# done
+
+ #---------------------------------------------------------------
+ # clean
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-f77.patch b/sci-electronics/tnt/files/tnt-1.2.2-f77.patch
new file mode 100644
index 000000000..b1f3fa150
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-f77.patch
@@ -0,0 +1,14 @@
+diff -ruN tnt-1.2.2-3-namespace/bem/configure.ac tnt-1.2.2-4-g77/bem/configure.ac
+--- tnt-1.2.2-3-namespace/bem/configure.ac 2004-04-22 22:07:12.000000000 +0200
++++ tnt-1.2.2-4-g77/bem/configure.ac 2011-02-24 23:55:35.000000000 +0100
+@@ -74,9 +74,7 @@
+ ;;
+ *linux*)
+ # For Linux, all flavors...
+- # Use the GNU compilers for C++ and FORTRAN.
+- CXX="g++"
+- F77="g77"
++ # Use the GNU compilers for C++ and FORTRAN and rely on portage
+ AM_CXXFLAGS="-DFORTRAN_UNDERBARS"
+ ;;
+ esac
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-gui.patch b/sci-electronics/tnt/files/tnt-1.2.2-gui.patch
new file mode 100644
index 000000000..e2a9b4ca4
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-gui.patch
@@ -0,0 +1,24 @@
+diff -ruN tnt-1.2.2-6-docs/gui/gui_help.tcl tnt-1.2.2/gui/gui_help.tcl
+--- tnt-1.2.2-6-docs/gui/gui_help.tcl 2004-07-26 15:37:52.000000000 +0200
++++ tnt-1.2.2/gui/gui_help.tcl 2011-02-24 23:45:27.000000000 +0100
+@@ -26,7 +26,7 @@
+ switch -exact $helpTopic {
+
+ userguide {
+- display_online_help user-guide/index.html
++ display_online_help /usr/share/doc/package_name/html/index.html
+ }
+
+ }
+diff -ruN tnt-1.2.2-6-docs/gui/splash.tcl tnt-1.2.2/gui/splash.tcl
+--- tnt-1.2.2-6-docs/gui/splash.tcl 2004-07-22 15:16:21.000000000 +0200
++++ tnt-1.2.2/gui/splash.tcl 2011-02-24 23:45:23.000000000 +0100
+@@ -81,7 +81,7 @@
+ } else {
+ set filename COPYING
+ }
+- set licenseFile [file join $::scriptDir .. $filename]
++ set licenseFile [file join /usr share doc package_name html $filename]
+ if { [file exists $licenseFile] } {
+ ::gui::guiPopupFile $licenseFile
+ } else {
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-namespaces.patch b/sci-electronics/tnt/files/tnt-1.2.2-namespaces.patch
new file mode 100644
index 000000000..74bf0ee49
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-namespaces.patch
@@ -0,0 +1,230 @@
+diff -ruN tnt-1.2.2-2-bem/bem/src/magicad.h tnt-1.2.2/bem/src/magicad.h
+--- tnt-1.2.2-2-bem/bem/src/magicad.h 2002-10-23 00:29:27.000000000 +0200
++++ tnt-1.2.2/bem/src/magicad.h 2011-02-24 19:36:32.000000000 +0100
+@@ -100,7 +100,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #ifdef __cplusplus
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #endif
+ #include <limits.h>
+ #if !defined(PATH_MAX) || defined(__hpux)
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/bicgstab.cpp tnt-1.2.2/calcCAP/src/bicgstab.cpp
+--- tnt-1.2.2-2-bem/calcCAP/src/bicgstab.cpp 2004-07-22 21:29:12.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/bicgstab.cpp 2011-02-24 19:36:32.000000000 +0100
+@@ -9,7 +9,8 @@
+
+
+ //#include "stdafx.h"
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #include <math.h>
+
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/diffrm.cpp tnt-1.2.2/calcCAP/src/diffrm.cpp
+--- tnt-1.2.2-2-bem/calcCAP/src/diffrm.cpp 2002-10-10 15:46:02.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/diffrm.cpp 2011-02-24 19:36:41.000000000 +0100
+@@ -8,8 +8,10 @@
+
+ //#include "stdafx.h"
+ #include <math.h>
+-#include <iostream.h>
+-#include <iomanip.h>
++#include <iostream>
++using namespace std;
++#include <iomanip>
++using namespace std;
+ #include <stdlib.h>
+
+ #include "complex.h"
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/ivectorl.h tnt-1.2.2/calcCAP/src/ivectorl.h
+--- tnt-1.2.2-2-bem/calcCAP/src/ivectorl.h 2002-10-10 15:46:04.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/ivectorl.h 2011-02-24 19:36:32.000000000 +0100
+@@ -1,6 +1,7 @@
+ #ifndef _IVectorl__h_
+ #define _IVectorl__h_
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+
+ class IVectorl
+ {
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/prony.cpp tnt-1.2.2/calcCAP/src/prony.cpp
+--- tnt-1.2.2-2-bem/calcCAP/src/prony.cpp 2002-10-10 15:46:06.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/prony.cpp 2011-02-24 19:36:41.000000000 +0100
+@@ -1,6 +1,7 @@
+ #include "stdafx.h"
+ #include <math.h>
+-#include <iomanip.h>
++#include <iomanip>
++using namespace std;
+ #include <stdlib.h>
+ #include "complex.h"
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/sparse.cpp tnt-1.2.2/calcCAP/src/sparse.cpp
+--- tnt-1.2.2-2-bem/calcCAP/src/sparse.cpp 2004-07-22 21:29:12.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/sparse.cpp 2011-02-24 19:36:41.000000000 +0100
+@@ -2,9 +2,11 @@
+
+ //#include "stdafx.h"
+ #include <math.h>
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #include <stdlib.h>
+-#include <iomanip.h>
++#include <iomanip>
++using namespace std;
+
+ #include "complex.h"
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/stdafx.h tnt-1.2.2/calcCAP/src/stdafx.h
+--- tnt-1.2.2-2-bem/calcCAP/src/stdafx.h 2002-10-10 15:46:08.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/stdafx.h 2011-02-24 19:36:50.000000000 +0100
+@@ -2,11 +2,15 @@
+ #define _stdafx__h_
+
+ #include <math.h>
+-#include <iostream.h>
+-#include <iomanip.h>
+-#include <fstream.h>
++#include <iostream>
++using namespace std;
++#include <iomanip>
++using namespace std;
++#include <fstream>
++using namespace std;
+ #include <stdlib.h>
+-#include <iomanip.h>
++#include <iomanip>
++using namespace std;
+
+ #include "complex.h"
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/systsolv.cpp tnt-1.2.2/calcCAP/src/systsolv.cpp
+--- tnt-1.2.2-2-bem/calcCAP/src/systsolv.cpp 2002-10-10 15:46:08.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/systsolv.cpp 2011-02-24 19:36:32.000000000 +0100
+@@ -3,7 +3,8 @@
+
+ //#include "stdafx.h"
+
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #include <math.h>
+ #include <stdlib.h>
+ #include "complex.h"
+diff -ruN tnt-1.2.2-2-bem/calcCAP/src/vector.h tnt-1.2.2/calcCAP/src/vector.h
+--- tnt-1.2.2-2-bem/calcCAP/src/vector.h 2002-10-10 15:46:09.000000000 +0200
++++ tnt-1.2.2/calcCAP/src/vector.h 2011-02-24 19:36:41.000000000 +0100
+@@ -1,8 +1,10 @@
+ #ifndef _Vector__h_
+ #define _Vector__h_
+
+-#include <iostream.h>
+-#include <iomanip.h>
++#include <iostream>
++using namespace std;
++#include <iomanip>
++using namespace std;
+
+ class Vector
+ {
+diff -ruN tnt-1.2.2-2-bem/calcRL/src/bicgstab.cpp tnt-1.2.2/calcRL/src/bicgstab.cpp
+--- tnt-1.2.2-2-bem/calcRL/src/bicgstab.cpp 2004-07-22 21:29:37.000000000 +0200
++++ tnt-1.2.2/calcRL/src/bicgstab.cpp 2011-02-24 19:36:32.000000000 +0100
+@@ -9,7 +9,8 @@
+
+
+ //#include "stdafx.h"
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #include <math.h>
+
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcRL/src/ivectorl.h tnt-1.2.2/calcRL/src/ivectorl.h
+--- tnt-1.2.2-2-bem/calcRL/src/ivectorl.h 2002-10-09 22:23:41.000000000 +0200
++++ tnt-1.2.2/calcRL/src/ivectorl.h 2011-02-24 19:36:32.000000000 +0100
+@@ -2,7 +2,8 @@
+ #define _IVectorl__h_
+ #include <stdlib.h>
+ #include <math.h>
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+
+ class IVectorl
+ {
+diff -ruN tnt-1.2.2-2-bem/calcRL/src/sparse.cpp tnt-1.2.2/calcRL/src/sparse.cpp
+--- tnt-1.2.2-2-bem/calcRL/src/sparse.cpp 2002-10-09 22:23:45.000000000 +0200
++++ tnt-1.2.2/calcRL/src/sparse.cpp 2011-02-24 19:36:41.000000000 +0100
+@@ -1,9 +1,11 @@
+ /******* functions, needed for sparse matrices *******/
+
+ #include <math.h>
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #include <stdlib.h>
+-#include <iomanip.h>
++#include <iomanip>
++using namespace std;
+
+ #include "complex.h"
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcRL/src/stdafx.h tnt-1.2.2/calcRL/src/stdafx.h
+--- tnt-1.2.2-2-bem/calcRL/src/stdafx.h 2002-10-09 22:23:56.000000000 +0200
++++ tnt-1.2.2/calcRL/src/stdafx.h 2011-02-24 19:36:50.000000000 +0100
+@@ -2,11 +2,15 @@
+ #define _stdafx__h_
+
+ #include <math.h>
+-#include <iostream.h>
+-#include <iomanip.h>
+-#include <fstream.h>
++#include <iostream>
++using namespace std;
++#include <iomanip>
++using namespace std;
++#include <fstream>
++using namespace std;
+ #include <stdlib.h>
+-#include <iomanip.h>
++#include <iomanip>
++using namespace std;
+
+ #include "complex.h"
+ #include "vector.h"
+diff -ruN tnt-1.2.2-2-bem/calcRL/src/systsolv.cpp tnt-1.2.2/calcRL/src/systsolv.cpp
+--- tnt-1.2.2-2-bem/calcRL/src/systsolv.cpp 2002-10-09 22:23:57.000000000 +0200
++++ tnt-1.2.2/calcRL/src/systsolv.cpp 2011-02-24 19:36:32.000000000 +0100
+@@ -2,7 +2,8 @@
+ /*****Source - "NUMERICAL RECIPES IN C", www.nr.com*****/
+
+ //#include "stdafx.h"
+-#include <iostream.h>
++#include <iostream>
++using namespace std;
+ #include <math.h>
+ #include <stdlib.h>
+ #include "complex.h"
+diff -ruN tnt-1.2.2-2-bem/calcRL/src/vector.h tnt-1.2.2/calcRL/src/vector.h
+--- tnt-1.2.2-2-bem/calcRL/src/vector.h 2002-10-09 22:23:59.000000000 +0200
++++ tnt-1.2.2/calcRL/src/vector.h 2011-02-24 19:36:41.000000000 +0100
+@@ -3,8 +3,10 @@
+
+ #include <stdlib.h>
+ #include <math.h>
+-#include <iostream.h>
+-#include <iomanip.h>
++#include <iostream>
++using namespace std;
++#include <iomanip>
++using namespace std;
+
+ class Vector
+ {
diff --git a/sci-electronics/tnt/files/tnt-1.2.2-tkcon.patch b/sci-electronics/tnt/files/tnt-1.2.2-tkcon.patch
new file mode 100644
index 000000000..4c603c739
--- /dev/null
+++ b/sci-electronics/tnt/files/tnt-1.2.2-tkcon.patch
@@ -0,0 +1,16 @@
+--- sppdgTcllib/console/tkcon.tcl.org 2011-02-19 01:46:57.000000000 -0800
++++ sppdgTcllib/console/tkcon.tcl 2011-02-19 01:47:36.000000000 -0800
+@@ -43,9 +43,10 @@
+
+ if {$tcl_version < 8.0} {
+ return -code error "tkcon requires at least Tcl/Tk8"
+-} else {
+- package require -exact Tk $tcl_version
+-}
++}
++#else {
++# package require -exact Tk $tcl_version
++#}
+
+ catch {package require bogus-package-name}
+ foreach pkg [info loaded {}] {
diff --git a/sci-electronics/tnt/metadata.xml b/sci-electronics/tnt/metadata.xml
new file mode 100644
index 000000000..90e3ad46f
--- /dev/null
+++ b/sci-electronics/tnt/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>no-herd</herd>
+ <maintainer>
+ <email>dilfridge@gentoo.org</email>
+ <name>Andreas K. Huettel</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sci-electronics/tnt/tnt-1.2.2.ebuild b/sci-electronics/tnt/tnt-1.2.2.ebuild
new file mode 100644
index 000000000..8ce4ae021
--- /dev/null
+++ b/sci-electronics/tnt/tnt-1.2.2.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+inherit base autotools eutils toolchain-funcs
+
+DESCRIPTION="MoM 2.5 D stripline simulator"
+SRC_URI="mirror://sourceforge/mmtl/${P}.tar.gz"
+HOMEPAGE="http://mmtl.sourceforge.net/"
+LICENSE="BSD GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="
+ dev-lang/tcl
+ dev-tcltk/tcllib
+ dev-tcltk/itcl
+ dev-tcltk/bwidget
+ sys-devel/gcc[fortran]
+"
+DEPEND="${RDEPEND}
+ dev-texlive/texlive-latex
+ dev-tex/latex2html
+ media-gfx/imagemagick
+"
+
+PATCHES=( "${FILESDIR}/${P}"-{calc,bem-nmmtl,namespaces,f77,tkcon,docs,gui}.patch )
+
+src_prepare() {
+ base_src_prepare
+
+ #adjust new document location in gui
+ sed -i "s/package_name/${PF}/" gui/splash.tcl
+ sed -i "s/package_name/${PF}/" gui/gui_help.tcl
+
+ eautoreconf
+}
+
+src_install () {
+ emake DESTDIR="${D}" install || die "make install failed"
+
+ dodoc AUTHORS ChangeLog NEWS README THANKS || die
+
+ # tcl cannot handle the archives created by dodoc
+ dohtml COPYING || die
+ if use doc; then
+ dodoc doc/*.pdf doc/*.png || die
+ dohtml doc/user-guide/* || die
+ fi
+
+ # Install icon
+ convert gui/logo.gif gui/tnt.png
+ docinto "examples"
+ dodoc examples/* || die "failed to install exampels"
+ newicon gui/tnt.png tnt.png
+ make_desktop_entry ${PN} "tnt" ${PN}
+}
+
+pkg_postinst() {
+ elog "Warning: the sources are not under development anymore."
+ elog "We made it compile, but users should check if the results make sense."
+ elog "Examples are in the /usr/share/doc/tnt-1.2.2 folder."
+}