info-gama
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Info-gama] GNU Gama 1.7.14 was released on 2005-09-30


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

Hi ALes!

I founded a little bug in g3_model_angle.cpp there must include math.h to compile with Borland CBuilder 6

Zoltan

2005/9/30, Ales Cepek <address@hidden>:
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();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]