From 7f63973c944edc4fb0c593182741ab6524bd22c6 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (laptop)" <j.wuttke@fz-juelich.de> Date: Fri, 18 Mar 2011 17:41:38 +0100 Subject: [PATCH] icurve/extern interface --- pub/src/curve.cpp | 20 +++++++++++++++----- pub/test/test_curve_ci | Bin 13351 -> 13639 bytes pub/test/test_curve_ci.c | 9 ++++++++- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/pub/src/curve.cpp b/pub/src/curve.cpp index f727dd50..bc0682ca 100644 --- a/pub/src/curve.cpp +++ b/pub/src/curve.cpp @@ -117,8 +117,8 @@ ask_again: " - 1*int: the number of data points N\n" " - N*double: the data points\n" "- write to stdout a whitespace separated list of:\n" - " - N*double: the curve values\n"; - // "for examples, see /usr/local/share/frida/demo-curve-c" + " - N*double: the curve values\n" + "- write to error messages to stderr\n"; goto ask_again; } else if ( resp=="hci" ) { cout << @@ -127,8 +127,8 @@ ask_again: " - 1*int: the number of parameters M\n" " - M*double: the parameters\n" "- write to stdout a whitespace separated list of:\n" - " - 1*int: the number of data pairs N\n" - " - N*2*double: a sequence of data pairs: x0 y0 x1 y1 x2 y2 ...\n"; + " - N*2*double: a sequence of data pairs: x0 y0 x1 y1 x2 y2 ...\n" + "- write to error messages to stderr\n"; goto ask_again; } else if ( resp=="c" ) { evaMode = COlc::_SCR; @@ -198,10 +198,20 @@ void COlc::curve_val_vec( vector<double>* ret, const vector<double>& vt, throw "SYSTEM ERROR cannot open " + par_fifonam; fcntl( par_fifo, F_SETFL, O_NONBLOCK); - for( uint ip=0; ip<nPar(); ++ip ) { + string out = str( format("%i ") % nPar() ); + write( par_fifo, out.c_str(), out.size() ); + for ( uint ip=0; ip<nPar(); ++ip ) { string out = str( format("%g ") % VC(j)->P[ip] ); write( par_fifo, out.c_str(), out.size() ); } + if ( evaMode==_SCR ) { + string out = str( format("%i ") % nPar() ); + write( par_fifo, out.c_str(), out.size() ); + for ( uint i=0; i<vt.size(); ++i ) { + string out = str( format("%g ") % vt[i] ); + write( par_fifo, out.c_str(), out.size() ); + } + } close( par_fifo ); CSpec S; diff --git a/pub/test/test_curve_ci b/pub/test/test_curve_ci index ee20313a3181fef88ef0b91658c96cc9875c3171..e38ef910ce71e1dc6363afe3a7630cbfc9daa0eb 100755 GIT binary patch delta 2882 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 F0|0d!DGvYu delta 2604 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 diff --git a/pub/test/test_curve_ci.c b/pub/test/test_curve_ci.c index 2712f755..92db4b8f 100644 --- a/pub/test/test_curve_ci.c +++ b/pub/test/test_curve_ci.c @@ -52,9 +52,16 @@ int main( int argc, char **argv ) // Read parameters from stdin: // fprintf( stderr, "# test_curve_ci\n" ); + scanf( "%i", &m ); + if ( m!= M+1 ) { + fprintf( stderr, + "inconsistent number of parameters: %i offered, %i needed\n", + m, M+1 ); + return -1; + } scanf( "%lg", &t0 ); // fprintf( stderr, "# t0 %g\n", t0 ); - for( m=0; m<M; ++m ) { + for ( m=0; m<M; ++m ) { double val; scanf( "%lg", &val ); P.k[m] = val>0 ? val : 0; -- GitLab