use super::*;
use f2rust_std::*;
const CNVTOL: f64 = 0.000001;
const NWMAX: i32 = 15;
const NWDIST: i32 = 5;
const NWSEP: i32 = 5;
const NWRR: i32 = 5;
const NWUDS: i32 = 5;
const NWPA: i32 = 5;
const NWILUM: i32 = 5;
const ADDWIN: f64 = 0.5;
const FRMNLN: i32 = 32;
const FOVTLN: i32 = 40;
const FTCIRC: &[u8] = b"CIRCLE";
const FTELLI: &[u8] = b"ELLIPSE";
const FTPOLY: &[u8] = b"POLYGON";
const FTRECT: &[u8] = b"RECTANGLE";
const ANNULR: &[u8] = b"ANNULAR";
const ANY: &[u8] = b"ANY";
const PARTL: &[u8] = b"PARTIAL";
const FULL: &[u8] = b"FULL";
const DSSHAP: &[u8] = b"DSK";
const EDSHAP: &[u8] = b"ELLIPSOID";
const PTSHAP: &[u8] = b"POINT";
const RYSHAP: &[u8] = b"RAY";
const SPSHAP: &[u8] = b"SPHERE";
const NOCTYP: i32 = 4;
const OCLLN: i32 = 7;
const SHPLEN: i32 = 9;
const MAXVRT: i32 = 10000;
const CIRFOV: &[u8] = b"CIRCLE";
const ELLFOV: &[u8] = b"ELLIPSE";
const POLFOV: &[u8] = b"POLYGON";
const RECFOV: &[u8] = b"RECTANGLE";
const LBCELL: i32 = -5;
const LNSIZE: i32 = 80;
const MAXWIN: i32 = 100;
struct SaveVars {
QNAME: Vec<u8>,
RELATE: Vec<u8>,
SRCPRE: ActualCharArray,
SRCSUF: ActualCharArray,
ADJUST: f64,
CNFINE: StackArray<f64, 106>,
CRITPT: StackArray<f64, 100>,
DELTA: f64,
E: f64,
FINISH: f64,
FTOL: f64,
REFVAL: f64,
RESULT: StackArray<f64, 106>,
SHORT: StackArray<f64, 7>,
START: f64,
STEPSZ: f64,
TOL: f64,
VALUE: f64,
WORK: ActualArray2D<f64>,
XBEG: StackArray<f64, 50>,
XBEGVL: StackArray<f64, 50>,
XEND: StackArray<f64, 50>,
XENDVL: StackArray<f64, 50>,
XTIME: StackArray<f64, 50>,
XVAL: StackArray<f64, 50>,
I: i32,
J: i32,
MW: i32,
N: i32,
NCRIT: i32,
NW: i32,
BAIL: bool,
RPT: bool,
}
impl SaveInit for SaveVars {
fn new() -> Self {
let mut QNAME = vec![b' '; LNSIZE as usize];
let mut RELATE = vec![b' '; LNSIZE as usize];
let mut SRCPRE = ActualCharArray::new(LNSIZE, 1..=2);
let mut SRCSUF = ActualCharArray::new(LNSIZE, 1..=2);
let mut ADJUST: f64 = 0.0;
let mut CNFINE = StackArray::<f64, 106>::new(LBCELL..=MAXWIN);
let mut CRITPT = StackArray::<f64, 100>::new(1..=MAXWIN);
let mut DELTA: f64 = 0.0;
let mut E: f64 = 0.0;
let mut FINISH: f64 = 0.0;
let mut FTOL: f64 = 0.0;
let mut REFVAL: f64 = 0.0;
let mut RESULT = StackArray::<f64, 106>::new(LBCELL..=MAXWIN);
let mut SHORT = StackArray::<f64, 7>::new(LBCELL..=1);
let mut START: f64 = 0.0;
let mut STEPSZ: f64 = 0.0;
let mut TOL: f64 = 0.0;
let mut VALUE: f64 = 0.0;
let mut WORK = ActualArray2D::<f64>::new(LBCELL..=MAXWIN, 1..=NWMAX);
let mut XBEG = StackArray::<f64, 50>::new(1..=(MAXWIN / 2));
let mut XBEGVL = StackArray::<f64, 50>::new(1..=(MAXWIN / 2));
let mut XEND = StackArray::<f64, 50>::new(1..=(MAXWIN / 2));
let mut XENDVL = StackArray::<f64, 50>::new(1..=(MAXWIN / 2));
let mut XTIME = StackArray::<f64, 50>::new(1..=(MAXWIN / 2));
let mut XVAL = StackArray::<f64, 50>::new(1..=(MAXWIN / 2));
let mut I: i32 = 0;
let mut J: i32 = 0;
let mut MW: i32 = 0;
let mut N: i32 = 0;
let mut NCRIT: i32 = 0;
let mut NW: i32 = 0;
let mut BAIL: bool = false;
let mut RPT: bool = false;
Self {
QNAME,
RELATE,
SRCPRE,
SRCSUF,
ADJUST,
CNFINE,
CRITPT,
DELTA,
E,
FINISH,
FTOL,
REFVAL,
RESULT,
SHORT,
START,
STEPSZ,
TOL,
VALUE,
WORK,
XBEG,
XBEGVL,
XEND,
XENDVL,
XTIME,
XVAL,
I,
J,
MW,
N,
NCRIT,
NW,
BAIL,
RPT,
}
}
}
pub fn F_ZZGFRELX(OK: &mut bool, ctx: &mut Context) -> f2rust_std::Result<()> {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
testutil::TOPEN(b"F_ZZGFRELX", ctx)?;
testutil::TCASE(b"Too few workspace windows.", ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"=");
save.TOL = 0.000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = MAXWIN;
save.NW = 4;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(TOOFEWWINDOWS)", OK, ctx)?;
testutil::TCASE(b"Workspace windows too short.", ctx)?;
spicelib::SSIZED(1, save.SHORT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.SHORT[1] = spicelib::PI(ctx);
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"=");
save.TOL = 0.000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = 1;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.SHORT.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(INVALIDDIMENSION)", OK, ctx)?;
testutil::TCASE(b"Result window too short; found before search", ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(1, save.SHORT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"=");
save.TOL = 0.000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.SHORT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(INVALIDDIMENSION)", OK, ctx)?;
testutil::TCASE(b"Result window too short; found during search", ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(12, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"LOCMAX");
save.TOL = 0.000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(OUTOFROOM)", OK, ctx)?;
testutil::TCASE(b"Bad adjustment value", ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = -1.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(VALUEOUTOFRANGE)", OK, ctx)?;
testutil::TCASE(b"Non-positive tolerance value", ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = -0.000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(INVALIDTOLERANCE)", OK, ctx)?;
save.TOL = 0.0;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(INVALIDTOLERANCE)", OK, ctx)?;
testutil::TCASE(b"Bad relational operator", ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"==");
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(true, b"SPICE(NOTRECOGNIZED)", OK, ctx)?;
testutil::TCASE(b"Solve SIN(X) == 0.5 on [-pi,pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"=");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 2, 0, OK, ctx)?;
save.XTIME[1] = (spicelib::PI(ctx) / 6 as f64);
save.XTIME[2] = (((5 as f64) * spicelib::PI(ctx)) / 6 as f64);
save.XVAL[1] = 0.5;
save.XVAL[2] = 0.5;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XTIME[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(&save.QNAME, save.FINISH, b"=", save.START, 0.0, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XVAL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Solve SIN(X) < 0.5 on [-pi,pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"<");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 2, 0, OK, ctx)?;
save.XBEG[1] = -spicelib::PI(ctx);
save.XEND[1] = (spicelib::PI(ctx) / 6 as f64);
save.XBEG[2] = (((5 as f64) * spicelib::PI(ctx)) / 6 as f64);
save.XEND[2] = spicelib::PI(ctx);
save.XBEGVL[1] = 0.0;
save.XENDVL[1] = 0.5;
save.XBEGVL[2] = 0.5;
save.XENDVL[2] = 0.0;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Solve SIN(X) > 0.5 on [-pi,pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-spicelib::PI(ctx),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b">");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = (spicelib::PI(ctx) / 6 as f64);
save.XEND[1] = (((5 as f64) * spicelib::PI(ctx)) / 6 as f64);
save.XBEGVL[1] = 0.5;
save.XENDVL[1] = 0.5;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Find local maxima of SIN(X) on [0,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
0.0,
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 5, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = 5;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.I] = (((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
+ (spicelib::PI(ctx) / 2 as f64));
save.XEND[save.I] = save.XBEG[save.I];
save.XBEGVL[save.I] = 1.0;
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(&save.QNAME, save.FINISH, b"=", save.START, 0.0, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Find local minima of SIN(X) on [0,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
0.0,
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 5, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = 5;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.I] = (((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
+ (((3 as f64) * spicelib::PI(ctx)) / 2 as f64));
save.XEND[save.I] = save.XBEG[save.I];
save.XBEGVL[save.I] = -1.0;
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(&save.QNAME, save.FINISH, b"=", save.START, 0.0, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Find adjusted absolute maxima of SIN(X) on [0,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
0.0,
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.5;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 5, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = 5;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.I] = (((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
+ (spicelib::PI(ctx) / 6 as f64));
save.XEND[save.I] = (((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
+ (((5 as f64) * spicelib::PI(ctx)) / 6 as f64));
save.XBEGVL[save.I] = 0.5;
save.XENDVL[save.I] = 0.5;
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Find adjusted absolute minima of SIN(X) on [0,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
0.0,
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.5;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 5, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = 5;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.I] = (((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
+ (((7 as f64) * spicelib::PI(ctx)) / 6 as f64));
save.XEND[save.I] = (((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
+ (((11 as f64) * spicelib::PI(ctx)) / 6 as f64));
save.XBEGVL[save.I] = -0.5;
save.XENDVL[save.I] = -0.5;
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Find absolute maximum of X on [-10*pi,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"X", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = ((10 as f64) * spicelib::PI(ctx));
save.XEND[1] = save.XBEG[1];
save.XBEGVL[1] = save.XBEG[1];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[1],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(&save.QNAME, save.FINISH, b"=", save.START, 0.0, OK, ctx)?;
}
testutil::TCASE(b"Find absolute minimum of X on [-10*pi,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"X", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = -((10 as f64) * spicelib::PI(ctx));
save.XEND[1] = save.XBEG[1];
save.XBEGVL[1] = save.XBEG[1];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[1],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(&save.QNAME, save.FINISH, b"=", save.START, 0.0, OK, ctx)?;
}
testutil::TCASE(
b"Find critical points of (X**2)SIN(X) on [-10*pi,10*pi]",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"=");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"D((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b">", 19, 0, OK, ctx)?;
save.NCRIT = save.N;
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
save.CRITPT[save.I] = save.START;
save.I += m3__;
}
}
if (save.NCRIT == 21) {
{
let m1__: i32 = 10;
let m2__: i32 = 20;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.CRITPT[save.I] = save.CRITPT[(save.I + 1)];
save.I += m3__;
}
}
save.NCRIT = 20;
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = (save.TOL * 1000.0);
testutil::CHCKSD(&save.QNAME, save.VALUE, b"~", 0.0, save.FTOL, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(b"Find local maxima of (X**2)SIN(X) on [-10*pi,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 10, 0, OK, ctx)?;
save.J = 1;
{
let m1__: i32 = 1;
let m2__: i32 = 20;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.J] = save.CRITPT[save.I];
save.J = (save.J + 1);
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
save.FTOL = 0.0000000001;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Function at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b">", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"~", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"2nd derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D2((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"<", 0.0, save.FTOL, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Find absolute maximum of (X**2)SIN(X) on [-10*pi,10*pi]",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[1];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Find absolute maximum of (X**2)SIN(X) on [-9*pi,10*pi]",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((9 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[19];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(b"Find local minima of (X**2)SIN(X) on [-10*pi,10*pi]", ctx)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 10, 0, OK, ctx)?;
save.J = 1;
{
let m1__: i32 = 2;
let m2__: i32 = 20;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.J] = save.CRITPT[save.I];
save.J = (save.J + 1);
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
save.FTOL = 0.0000000001;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Function at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"<", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"~", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"2nd derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D2((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b">", 0.0, save.FTOL, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Find absolute minimum of (X**2)SIN(X) on [-10*pi,10*pi]",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((10 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[20];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Find absolute minimum of (X**2)SIN(X) on [-10*pi,9*pi]",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-((10 as f64) * spicelib::PI(ctx)),
((9 as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[2];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Solve SIN(X) == 0.5 on { [0,pi/6], [pi/3,pi/2], [2pi/3,5pi/6] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
0.0,
(spicelib::PI(ctx) / 6 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
(spicelib::PI(ctx) / 3 as f64),
(spicelib::PI(ctx) / 2 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
(((2 as f64) * spicelib::PI(ctx)) / 3 as f64),
(((5 as f64) * spicelib::PI(ctx)) / 6 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.E = 0.000000000001;
spicelib::WNEXPD(save.E, save.E, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"=");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 2, 0, OK, ctx)?;
save.XTIME[1] = (spicelib::PI(ctx) / 6 as f64);
save.XTIME[2] = (((5 as f64) * spicelib::PI(ctx)) / 6 as f64);
save.XVAL[1] = 0.5;
save.XVAL[2] = 0.5;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XTIME[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(&save.QNAME, save.FINISH, b"=", save.START, 0.0, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XVAL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Solve SIN(X) < 0.5 on { [-pi/2,-pi/4], [0,pi/6], [pi/3,2*pi/3], [5pi/6, pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-(spicelib::PI(ctx) / 2 as f64),
-(spicelib::PI(ctx) / 4 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
0.0,
(spicelib::PI(ctx) / 6 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
(spicelib::PI(ctx) / 3 as f64),
(((3 as f64) * spicelib::PI(ctx)) / 3 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
(((5 as f64) * spicelib::PI(ctx)) / 6 as f64),
spicelib::PI(ctx),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b"<");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 3, 0, OK, ctx)?;
save.XBEG[1] = -(spicelib::PI(ctx) / 2 as f64);
save.XEND[1] = -(spicelib::PI(ctx) / 4 as f64);
save.XBEG[2] = 0.0;
save.XEND[2] = (spicelib::PI(ctx) / 6 as f64);
save.XBEG[3] = (((5 as f64) * spicelib::PI(ctx)) / 6 as f64);
save.XEND[3] = spicelib::PI(ctx);
save.XBEGVL[1] = -1.0;
save.XENDVL[1] = -(f64::sqrt(2.0) / 2 as f64);
save.XBEGVL[2] = 0.0;
save.XENDVL[2] = 0.5;
save.XBEGVL[3] = 0.5;
save.XENDVL[3] = 0.0;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Solve SIN(X) > 0.5 on { [-pi/2,0], [pi/6, pi/3], [2*pi/3, 5*pi/6], [pi, 7*pi/6 }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
-(spicelib::PI(ctx) / 2 as f64),
0.0,
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
(spicelib::PI(ctx) / 6 as f64),
(spicelib::PI(ctx) / 3 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
(((2 as f64) * spicelib::PI(ctx)) / 3 as f64),
(((5 as f64) * spicelib::PI(ctx)) / 6 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::WNINSD(
spicelib::PI(ctx),
(((7 as f64) * spicelib::PI(ctx)) / 6 as f64),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.5;
fstr::assign(&mut save.RELATE, b">");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 2, 0, OK, ctx)?;
save.XBEG[1] = (spicelib::PI(ctx) / 6 as f64);
save.XEND[1] = (spicelib::PI(ctx) / 3 as f64);
save.XBEG[2] = (((2 as f64) * spicelib::PI(ctx)) / 3 as f64);
save.XEND[2] = (((5 as f64) * spicelib::PI(ctx)) / 6 as f64);
save.XBEGVL[1] = 0.5;
save.XENDVL[1] = (f64::sqrt(3.0) / 2 as f64);
save.XBEGVL[2] = (f64::sqrt(3.0) / 2 as f64);
save.XENDVL[2] = 0.5;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Find local maxima of (X**2)SIN(X) on set of intervals bracketing critical points",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.DELTA = 0.25;
testutil::CHCKSI(b"NCRIT", save.NCRIT, b"=", 20, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = save.NCRIT;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
(save.CRITPT[save.I] - save.DELTA),
(save.CRITPT[save.I] + save.DELTA),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 10, 0, OK, ctx)?;
save.J = 1;
{
let m1__: i32 = 1;
let m2__: i32 = 20;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.J] = save.CRITPT[save.I];
save.J = (save.J + 1);
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
save.FTOL = 0.0000000001;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Function at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b">", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"~", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"2nd derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D2((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"<", 0.0, save.FTOL, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Find local minima of (X**2)SIN(X) on set of intervals bracketing critical points",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.DELTA = 0.25;
testutil::CHCKSI(b"NCRIT", save.NCRIT, b"=", 20, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = save.NCRIT;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
(save.CRITPT[save.I] - save.DELTA),
(save.CRITPT[save.I] + save.DELTA),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 10, 0, OK, ctx)?;
save.J = 1;
{
let m1__: i32 = 2;
let m2__: i32 = 20;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.J] = save.CRITPT[save.I];
save.J = (save.J + 1);
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
save.FTOL = 0.0000000001;
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Function at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"<", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b"~", 0.0, save.FTOL, OK, ctx)?;
fstr::assign(&mut save.QNAME, b"2nd derivative at time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_SET(b"D2((X**2)*SIN(X))", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
testutil::CHCKSD(&save.QNAME, save.VALUE, b">", 0.0, save.FTOL, OK, ctx)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Find local maxima of (X**2)SIN(X) on set of intervals excluding critical points",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.DELTA = 0.25;
testutil::CHCKSI(b"NCRIT", save.NCRIT, b"=", 20, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = save.NCRIT;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
(save.CRITPT[save.I] + save.DELTA),
(save.CRITPT[save.I] + ((2 as f64) * save.DELTA)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 0, 0, OK, ctx)?;
testutil::TCASE(
b"Find local minima of (X**2)SIN(X) on set of intervals excluding critical points",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.DELTA = 0.25;
testutil::CHCKSI(b"NCRIT", save.NCRIT, b"=", 20, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = save.NCRIT;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
(save.CRITPT[save.I] + save.DELTA),
(save.CRITPT[save.I] + ((2 as f64) * save.DELTA)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"LOCMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 0, 0, OK, ctx)?;
testutil::TCASE(
b"Find absolute maximum of (X**2)SIN(X) on { [-10*pi,-9*pi], [-8pi,-7pi],...,[8pi,9pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
{
let m1__: i32 = -10;
let m2__: i32 = 8;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
((save.I as f64) * spicelib::PI(ctx)),
(((save.I + 1) as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[1];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Find absolute maximum of (X**2)SIN(X) on { [-8*pi,-7*pi], [-6pi,-5pi],...,[8pi,9pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
{
let m1__: i32 = -8;
let m2__: i32 = 8;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
((save.I as f64) * spicelib::PI(ctx)),
(((save.I + 1) as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[19];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Find absolute minimum of (X**2)SIN(X) on { [-9*pi,-8*pi], [-8pi,-7pi],...,[9pi,10pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
{
let m1__: i32 = -9;
let m2__: i32 = 9;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
((save.I as f64) * spicelib::PI(ctx)),
(((save.I + 1) as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[20];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Find absolute minimum of (X**2)SIN(X) on { [-9*pi,-8*pi], [-8pi,-7pi],...,[7pi,8pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
{
let m1__: i32 = -9;
let m2__: i32 = 7;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
((save.I as f64) * spicelib::PI(ctx)),
(((save.I + 1) as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.0;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"(X**2)*SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 1, 0, OK, ctx)?;
save.XBEG[1] = save.CRITPT[2];
if *OK {
spicelib::WNFETD(
save.RESULT.as_slice(),
1,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", 1, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[1],
save.TOL,
OK,
ctx,
)?;
}
testutil::TCASE(
b"Find adjusted absolute maxima of SIN(X) on { [-9*pi,-8*pi], [-7pi,-6pi],...,[7pi,8pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
{
let m1__: i32 = -9;
let m2__: i32 = 7;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
((save.I as f64) * spicelib::PI(ctx)),
(((save.I + 1) as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.5;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMAX");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 18, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.I] =
((((save.I - 1) as f64) * spicelib::PI(ctx)) - ((9 as f64) * spicelib::PI(ctx)));
save.XEND[save.I] = (((((save.I - 1) as f64) * spicelib::PI(ctx))
- ((9 as f64) * spicelib::PI(ctx)))
+ (spicelib::PI(ctx) / 6 as f64));
save.XBEGVL[save.I] = 0.0;
save.XENDVL[save.I] = -0.5;
save.XBEG[(save.I + 1)] = (((((save.I - 1) as f64) * spicelib::PI(ctx))
- ((9 as f64) * spicelib::PI(ctx)))
+ (((5 as f64) * spicelib::PI(ctx)) / 6 as f64));
save.XEND[(save.I + 1)] =
((((save.I - 1) as f64) * spicelib::PI(ctx)) - ((8 as f64) * spicelib::PI(ctx)));
save.XBEGVL[(save.I + 1)] = -0.5;
save.XENDVL[(save.I + 1)] = 0.0;
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::TCASE(
b"Find adjusted absolute minima of SIN(X) on { [-9*pi,-8*pi], [-7pi,-6pi],...,[7pi,8pi] }",
ctx,
)?;
save.STEPSZ = 0.25;
spicelib::GFSSTP(save.STEPSZ, ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
spicelib::SSIZED(MAXWIN, save.CNFINE.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
{
let m1__: i32 = -9;
let m2__: i32 = 7;
let m3__: i32 = 2;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNINSD(
((save.I as f64) * spicelib::PI(ctx)),
(((save.I + 1) as f64) * spicelib::PI(ctx)),
save.CNFINE.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.I += m3__;
}
}
spicelib::SSIZED(MAXWIN, save.RESULT.as_slice_mut(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.ADJUST = 0.5;
save.REFVAL = 0.0;
fstr::assign(&mut save.RELATE, b"ABSMIN");
save.TOL = 0.0000000000001;
save.RPT = false;
save.BAIL = false;
fstr::assign(save.SRCPRE.get_mut(1), b"Search prefix 1");
fstr::assign(save.SRCPRE.get_mut(2), b"Search prefix 2");
fstr::assign(save.SRCSUF.get_mut(1), b"Search suffix 1");
fstr::assign(save.SRCSUF.get_mut(2), b"Search suffix 2");
T_SET(b"SIN(X)", ctx);
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.MW = MAXWIN;
save.NW = NWMAX;
spicelib::ZZGFRELX(
spicelib::GFSTEP,
spicelib::GFREFN,
T_DEC,
T_LT,
T_GET,
&save.RELATE,
save.REFVAL,
save.TOL,
save.ADJUST,
save.CNFINE.as_slice(),
save.MW,
save.NW,
save.WORK.as_slice_mut(),
save.RPT,
spicelib::GFREPI,
spicelib::GFREPU,
spicelib::GFREPF,
save.SRCPRE.as_arg(),
save.SRCSUF.as_arg(),
save.BAIL,
spicelib::GFBAIL,
save.RESULT.as_slice_mut(),
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
save.N = spicelib::WNCARD(save.RESULT.as_slice(), ctx)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
testutil::CHCKSI(b"N", save.N, b"=", 9, 0, OK, ctx)?;
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
save.XBEG[save.I] = ((((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
- ((9 as f64) * spicelib::PI(ctx)))
+ (spicelib::PI(ctx) / 6 as f64));
save.XEND[save.I] = ((((((save.I - 1) * 2) as f64) * spicelib::PI(ctx))
- ((9 as f64) * spicelib::PI(ctx)))
+ (((5 as f64) * spicelib::PI(ctx)) / 6 as f64));
save.XBEGVL[save.I] = -0.5;
save.XENDVL[save.I] = -0.5;
save.I += m3__;
}
}
if *OK {
{
let m1__: i32 = 1;
let m2__: i32 = save.N;
let m3__: i32 = 1;
save.I = m1__;
for _ in 0..((m2__ - m1__ + m3__) / m3__) as i32 {
spicelib::WNFETD(
save.RESULT.as_slice(),
save.I,
&mut save.START,
&mut save.FINISH,
ctx,
)?;
testutil::CHCKXC(false, b" ", OK, ctx)?;
fstr::assign(&mut save.QNAME, b"Start time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.START,
b"~",
save.XBEG[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Start value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.START, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XBEGVL[save.I],
save.FTOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop time #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
testutil::CHCKSD(
&save.QNAME,
save.FINISH,
b"~",
save.XEND[save.I],
save.TOL,
OK,
ctx,
)?;
fstr::assign(&mut save.QNAME, b"Stop value #");
spicelib::REPMI(&save.QNAME.to_vec(), b"#", save.I, &mut save.QNAME, ctx);
T_GET(&mut save.FINISH, &mut save.VALUE, ctx)?;
save.FTOL = save.TOL;
testutil::CHCKSD(
&save.QNAME,
save.VALUE,
b"~",
save.XENDVL[save.I],
save.FTOL,
OK,
ctx,
)?;
save.I += m3__;
}
}
}
testutil::T_SUCCESS(OK, ctx);
Ok(())
}