|
From: | Faludi Zoltán |
Subject: | Re: [Info-gama] GNU Gama 1.7.14 was released on 2005-09-30 |
Date: | Tue, 4 Oct 2005 10:03:53 +0200 |
GNU Gama 1.7.14 was released on 2005-09-30
It is avalable via ftp from ftp://alpha.gnu.org/gnu/gama/ and
from CVS cvs -d:ext:address@hidden:/cvsroot/gama co gama
Major changes between versions 1.7.14 and 1.7.13
------------------------------------------------
- fixed bug reported by Zoltan Faludi
Index: gamalib/local/median/g2d_coordinates.cpp
===================================================================
RCS file: /cvsroot/gama/gama/gamalib/local/median/g2d_coordinates.cpp,v
retrieving revision 1.10
diff -u -r1.10 g2d_coordinates.cpp
--- g2d_coordinates.cpp 7 May 2005 18:06:20 -0000 1.10
+++ g2d_coordinates.cpp 30 Sep 2005 08:36:29 -0000
@@ -212,7 +212,7 @@
bool ApproximateCoordinates::Solve_insertion()
{
- const int max_depth = 100;
+ const int max_depth = 5;
if(selected.empty() || (depth >= max_depth)) return false;
// building a point list in local coordinate system. during loop
- Stephane Kaloustian < address@hidden> translated
*.lang files to French
- Boris Pihtin <address@hidden> translated gama-local *.lang files
to Russian
- fixed bugs in printing adjustment results in gama-local
Index: adjusted_unknowns.h
===================================================================
RCS file: /cvsroot/gama/gama/gamalib/local/results/text/adjusted_unknowns.h,v
retrieving revision 1.10
diff -u -r1.10 adjusted_unknowns.h
--- adjusted_unknowns.h 7 May 2005 18:06:20 -0000 1.10
+++ adjusted_unknowns.h 29 Aug 2005 17:40:04 -0000
@@ -78,8 +78,6 @@
if (b.free_xy() && b.index_x())
{
- int i = b.index_x();
-
out.width(IS->maxw_unk());
out << " " << " ";
out.width(IS->maxw_id());
@@ -88,13 +86,13 @@
else
out << " ";
prev_id = point_id;
- Double mx = IS->unknown_stdev(i);
- Double my = IS->unknown_stdev(i+1);
+ Double mx = IS->unknown_stdev(b.index_x());
+ Double my = IS->unknown_stdev(b.index_y());
mp = sqrt(my*my+mx*mx);
out << '\n';
out.width(IS->maxw_unk());
- out << i << " ";
+ out << b.index_x() << " ";
out.width(IS->maxw_id());
if (b.constrained_xy())
out << "X" << " * ";
@@ -102,7 +100,7 @@
out << "x" << " ";
out.precision(5);
out.width(13);
- Double adj_x = b.x()+x(i)/1000;
+ Double adj_x = b.x()+x(b.index_x())/1000;
out << b.x_0() << " ";
out.width(9);
out << (adj_x - b.x_0()) << " ";
@@ -117,7 +115,7 @@
out.flush();
out.width(IS->maxw_unk());
- out << (i+1) << " ";
+ out << b.index_y() << " ";
out.width(IS->maxw_id());
if (b.constrained_xy())
out << "Y" << " * ";
@@ -125,7 +123,7 @@
out << "y" << " ";
out.precision(5);
out.width(13);
- Double adj_y = y_sign*(b.y()+x(i+1)/1000);
+ Double adj_y = y_sign*(b.y()+x(b.index_y())/1000);
out << y_sign*b.y_0() << " ";
out.width(9);
out << (adj_y - y_sign*b.y_0()) << " ";
@@ -140,8 +138,6 @@
}
if (b.free_z() && b.index_z())
{
- int i = b.index_z ();
-
if (!b.free_xy())
{
out.width(IS->maxw_unk());
@@ -156,7 +152,7 @@
prev_id = point_id;
out.width(IS->maxw_unk());
- out << i << " ";
+ out << b.index_z() << " ";
out.width(IS->maxw_id());
if (b.constrained_z())
out << "Z" << " * ";
@@ -164,18 +160,18 @@
out << "z" << " ";
out.precision(5);
out.width(13);
- Double adj_z = b.z()+x(i)/1000;
+ Double adj_z = b.z()+x(b.index_z())/1000;
out << b.z_0() << " ";
out.width(9);
out << (adj_z - b.z_0()) << " ";
out.width(13);
out << adj_z << " ";
- double mv = IS->unknown_stdev(i);
+ double mz = IS->unknown_stdev(b.index_z());
out.precision(1);
out.width(7);
- out << mv << " ";
+ out << mz << " ";
out.width(7);
- out << mv*kki;
+ out << mz*kki;
out << "\n";
}
Index: error_ellipses.h
===================================================================
RCS file: /cvsroot/gama/gama/gamalib/local/results/text/error_ellipses.h,v
retrieving revision 1.11
diff -u -r1.11 error_ellipses.h
--- error_ellipses.h 7 May 2005 18:06:20 -0000 1.11
+++ error_ellipses.h 29 Aug 2005 17:40:05 -0000
@@ -98,14 +98,15 @@
for (PointData::const_iterator
point=IS-> PD.begin(); point!=IS->PD.end(); ++point)
if ((*point).second.free_xy())
- if (int i = (*point).second.index_x())
+ if ((*point).second.index_x())
{
const PointID point_id = (*point).first;
out.width(IS->maxw_id());
out << point_id.c_str() << ' ';
- Double my = IS->unknown_stdev(i);
- Double mx = IS->unknown_stdev(i+1);
+ const LocalPoint& p = (*point).second;
+ Double my = IS->unknown_stdev(p.index_y());
+ Double mx = IS->unknown_stdev(p.index_x());
Double mp = sqrt(my*my+mx*mx);
if (mp < 1000)
@@ -172,8 +173,8 @@
out << bk << ' ';
Double g = 0;
- Double dx = x( i );
- Double dy = y_sign*x(i+1);
+ Double dx = x( p.index_x() );
+ Double dy = y_sign*x( p.index_y() );
Double p1 = (dx*cos(alfa) + dy*sin(alfa));
Double p2 = (dy*cos(alfa) - dx*sin(alfa));
if (ak > 0 && bk > 0 && bk > ak*1e-4)
- fixed bug in dataparser_adj.cpp
Index: dataparser_adj.cpp
===================================================================
RCS file: /cvsroot/gama/gama/gnu_gama/xml/dataparser_adj.cpp,v
retrieving revision 1.3
diff -r1.3 dataparser_adj.cpp
60a61,67
> // ..... <adj-input-data> ........................................
>
> init(s_gama_data, t_adj_input_data,
> s_adj_input_data_1, s_adj_input_data_5, 0,
> &DataParser::adj_input_data, 0, &DataParser::adj_input_data,
> s_adj_input_data_4);
>
- scripts/gnu_gama_dep.cpp: updated parameters for projects build
under MS Visual C++ 2005 Express Edition
- fixed possible undefined behavior of bad regularization during
revision of points
Index: gamalib/local/network.cpp
===================================================================
RCS file: /cvsroot/gama/gama/gamalib/local/network.cpp,v
retrieving revision 1.20
diff -u -r1.20 network.cpp
--- gamalib/local/network.cpp 7 May 2005 18:06:19 -0000 1.20
+++ gamalib/local/network.cpp 20 Jun 2005 20:31:00 -0000
@@ -610,15 +610,40 @@
int LocalNetwork::null_space()
{
- try {
- vyrovnani_();
- }
- catch(const MatVecException& vs) {
- if (vs.error != GNU_gama::Exception::BadRegularization) throw;
- }
+ try
+ {
+ vyrovnani_();
+ }
+ catch(const MatVecException& vs)
+ {
+ if (vs.error != GNU_gama::Exception::BadRegularization) throw;
+
+ for (Index i=1; i<=sum_unknowns(); i++)
+ if (lindep(i))
+ {
+ const char type = unknown_type(i);
+ const PointID id = unknown_pointid(i);
+
+ LocalPoint& p = PD[id];
+ if (type == 'X' || type == 'Y' || type == 'R' )
+ {
+ p.unused_xy();
+ removed(id, rm_singular_xy );
+ }
+ else if (type == 'Z' )
+ {
+ p.unused_z();
+ removed(id, rm_missing_z );
+ }
+
+ return null_space();
+ }
+ }
+
return defect();
}
- fixed a bug in local network linearization (possible impact of
this bug used to be adjusted by various data checks in 'gama-local')
Index: gamalib/local/linearization/xyzdiff.h
===================================================================
RCS file: /cvsroot/gama/gama/gamalib/local/linearization/xyzdiff.h,v
retrieving revision 1.3
diff -u -r1.3 xyzdiff.h
--- gamalib/local/linearization/xyzdiff.h 7 May 2005 18:06:20 -0000 1.3
+++ gamalib/local/linearization/xyzdiff.h 19 Jun 2005 11:11:03 -0000
@@ -96,14 +96,14 @@
rhs = (obs->value() - df)*1e3;
size = 0;
- if (spoint.free_xy())
+ if (spoint.free_z())
{
if (!spoint.index_z()) spoint.index_z() = ++maxn;
index[ size ] = spoint.index_z();
coeff[ size ] = -1;
size++;
}
- if (tpoint.free_xy())
+ if (tpoint.free_z())
{
if (!tpoint.index_z()) tpoint.index_z() = ++maxn;
index[ size ] = tpoint.index_z();
[Prev in Thread] | Current Thread | [Next in Thread] |