Overview
Comment:Irix: catch SIGFPE and write data before aborting (.exe).
GNU/Linux: nada.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | origin/merging-ode2odes-exe | trunk
Files: files | file ages | folders
SHA3-256: 559f3171001caceaa073a21dfe5966c60db3db9b4a56e6878fe1e47efb433418
User & Date: geraint@users.sourceforge.net on 2001-03-07 04:06:55
Other Links: branch diff | manifest | tags
Context
2001-03-09
02:52:11
Fixed parser path. check-in: 8f895130d6 user: geraint@users.sourceforge.net tags: origin/merging-ode2odes-exe, trunk
2001-03-07
04:06:55
Irix: catch SIGFPE and write data before aborting (.exe).
GNU/Linux: nada.
check-in: 559f317100 user: geraint@users.sourceforge.net tags: origin/merging-ode2odes-exe, trunk
2001-03-06
03:52:15
Put back struc_txt2m - required by mtt2sys. check-in: f2d74d13ba user: geraint@users.sourceforge.net tags: origin/merging-ode2odes-exe, trunk
Changes

Modified mttroot/mtt/bin/trans/make_ode2odes from [87f4b92b7c] to [5dd9cf654b].

1
2
3
4
5
6
7
8
9
10
11



12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21











+
+
+







#! /bin/sh

     ###################################### 
     ##### Model Transformation Tools #####
    ######################################

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.51.2.2  2001/03/02 00:45:21  geraint
## Separated Euler and Implicit methods in .cc code and dependencies.
##
## Revision 1.51.2.1  2001/03/01 05:05:53  geraint
## Minor revisions.
##
## Revision 1.51  2001/02/19 06:33:19  geraint
## Removed operation form loop.
##
## Revision 1.50  2001/02/18 09:18:49  geraint
296
297
298
299
300
301
302


303
304
305
306
307
308
309
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314







+
+







#include <octave/${feval_header}>
#endif

#include "${sys}_def.h"
#include "${sys}_sympar.h"

#ifdef STANDALONE
#include <csignal>

extern ColumnVector F${sys}_input (
	ColumnVector &x,
	ColumnVector &y,
	const double &t,
	ColumnVector &par);

extern ColumnVector F${sys}_logic (
588
589
590
591
592
593
594
595


596
597
598







599
600
601
602
603
604
605
593
594
595
596
597
598
599

600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618







-
+
+



+
+
+
+
+
+
+







fi
cat <<EOF >> $filename

inline void
mtt_write (const double &t,
	   ColumnVector &x,
	   ColumnVector &y,
	   const int &nrows)
	   const int &nrows,
	   const bool aborting = false)
{
  static Matrix data;
  static int row;

  if (aborting)
    {
       Matrix written_data = data.extract (0, 0, row-1, data.cols ()-1);
       save_ascii_data_for_plotting (cout, written_data, "MTT_data");
    }

  const int nx = x.length (), ny = y.length ();
  register int col = 0;

  if (0 == row)
    data = Matrix (nrows, 1+ny+1+nx, 0.0);

  data.elem (row, col) = t;
619
620
621
622
623
624
625














626

627
628
629
630
631
632
633
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661







+
+
+
+
+
+
+
+
+
+
+
+
+
+

+







#else // ! STANDALONE
  set_global_value ("MTT_data", data);
#endif
    }
}

#ifdef STANDALONE
void handle_sigfpe (int i)
#ifdef __GNUC__
__attribute__ ((noreturn));
void handle_sigfpe (int i)
#endif // __GNUC__
{
  ColumnVector null (0.0);
  cerr << "Error: Caught floating point exception ..." << endl
       << " ...   writing data to standard output ..." << endl;
  mtt_write (0.0, null, null, 0, true);
  cerr << " ...   aborting." << endl;
  abort ();
}

int main (void) {
  signal (SIGFPE, handle_sigfpe);
#else
DEFUN_DLD (${sys}_ode2odes, args, ,
"Octave ode2odes representation of system with $method integration method
Usage: ${sys}_ode2odes (x, par, simpar)
")
{
  static octave_value_list retval;


MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]