WSF
BRAWLER Namespace Reference

Enumerations

enum  WeaponType {
  nowepn = 0 , kndsrm = 1 , kndmrm = 2 , kndlrm = 3 ,
  kndmis = 3 , kndgun = 4 , knddew = 5 , kndwpn = 5
}
enum  ManeuverValueComponentType {
  i_voffef = 1 , i_vlospd = 2 , i_vform = 3 , i_compr = 4 ,
  i_valdfx = 5 , i_gaval = 6 , i_vvec = 7 , i_villum = 8 ,
  i_vmusup = 9 , i_valevd = 10 , i_vmaim = 11 , i_vdisng = 12 ,
  i_sepval = 13 , i_vescrt = 14 , i_vsamz = 15 , i_vavbdd = 16 ,
  i_hddval = 17 , i_terrval = 18 , i_vdew = 19 , i_vtpt = 20
}
enum  MissileModeState { NOTASK = 0 , INTERCEPT = 1 , AIMFIRE = 2 , ILLUMINATE = 3 }
enum  WeaponSeekerType {
  mxskr = 4 , irskr = 1 , saskr = 2 , acskr = 3 ,
  armskr = 4
}
enum  InherentBiasFaultTypes { i_ovroff = 1 , i_nmusup = 2 , i_nospd = 3 }
enum  JobType { FLIGHT_LEAD = 1 , ELEMENT_LEAD = 2 , WINGMAN = 3 }
enum  MissionType { ROUTE = 1 , ESCORT = 2 , CAP = 3 }

Functions

bool btest (const int var, const int pos)
 Returns true if the bit at pos in var is set.
bool lbit (const int word, const int n)
double dist (const UtVec3d &a, const UtVec3d &b)
double energy (const UtVec3d &pos, const UtVec3d &vel)
double egy (double z, double s)
UtFortMat3d makecs (const UtVec3d &xVec, const UtVec3d &zVec)
UtFortMat3d makcsi (const UtVec3d &xVec, const UtVec3d &zVec)
UtFortMat3d makex (const UtVec3d &cxin)
UtFortMat3d makeh (const UtVec3d &cxin)
 Equiv to makex with cxin assumed zero.
double headeg (UtVec3d v)
double ramp (const double xlo, const double xval, const double xhi)
void vsplit (const UtVec3d &v, const UtVec3d &x, UtVec3d &vl, UtVec3d &vt)
double xlimit (const double xreq, const double xmax, const double xmin)
UtFortMat3d bodyax (const UtFortMat3d &rwe, double alpha)
UtFortMat3d NEDToECSRotation (UtEntity &ref)
UtFortMat3d mrotx (UtFortMat3d a, double chi)
double AtmosphereDensityRatio (double altitude)
 From atmos.f calculating DR.
double SpeedOfSound (double altitude)
 From atmos.f calculating VS.
double LOSangleSigma (UtFortMat3d M, UtMatrixd R6, double R)
void nabort (const std::string &str)
double param1 (int i, double xx, double *aray)
double tbl1 (double x, double *z, double *xval, int nxval)
double tbl1b (double x, double *z, int nx, double xmin, double xmax)
double tbl2 (double x, double y, double *z, double *xval, int nxval, double *yval, int nyval)
double tbl2e (double x, double y, double *z, double *xval, int nxval, double *yval, int nyval)
void invtb2 (double *tbl, double z, int nr, int ir, double pr, bool revdir, int nc, int &ic, double &pc)
void srch (double *x, int nx, double xint, int &ilow, double &p)
bool maxcnt (int &count, bool zprnt, int mcount, const std::string &subnam)
double dsxdot (double xdes, double x, double xdot, double xdotmx, double tau)
UtVec3d vorth (const UtVec3d &a, const UtVec3d &b)
UtVec3d rotz (double phi, const UtVec3d &vin)
bool AimPoint (const UtVec3d &xa, double sa, const UtVec3d &xt, const UtVec3d &vt, double st, UtVec3d &aimp)
void intcpt (const UtVec3d &xa, double sa, const UtVec3d &xt, const UtVec3d &vt, double closmn, double angint, double hdes, UtVec3d &desdir, double &sdes)
void intcpt_inner (const UtVec3d &x_atkr, double sa, const UtVec3d &x_tgt, const UtVec3d &vt, double closmn, double angint, double hdes, double vs, const UtVec3d &xlos, double range, UtVec3d &desdir, double &sdes)
bool TryReadCommand (UtInput &aInput, std::string &aCommand)
bool InputIsValid (std::istringstream &aIn)
void ReadValue (UtInput &aInput, int &aValue)
void ReadValue (UtInput &aInput, double &aValue)
double LOSangleSigma (const UtFortMat3d &M, const UtMatrixd &R6, double R)
 Replicates ecmsig() with mode for LOS angle sigma only.

Variables

double const grav = 32.17405
double const pi = 3.141592654
double const rad = pi / 180.0
double const hafpi = 1.570796327
double const twopi = 6.283185308
double const root2 = 1.414213562
double const ftnmi = 0.000164578834
double const eps = 1.e-35
double const re = 20890377.0
double const xlarge = 1.e38
double const degrees2meters = 111194.92664456
double const degrees2feet = 364812.76313
double const cFtSec2PerG = 32.1740

BRAWLER min/max Functions

Return the smallest/largest of the values passed in.

double amin1 (const double a, const double b)
double amax1 (const double a, const double b)
double amax1 (const double a, const double b, const double c)

BRAWLER sign Functions

Return the values of a with sign of b. Equivalent to FORTRAN SIGN()

int sign (const int a, const int b)
double sign (const double a, const double b)

BRAWLER inverse trigonometric functions

Just renames of std acos, asin

double arccos (const double a)
double arcsin (const double a)
double avnorm (const UtVec3d &x)

BRAWLER Border Functions

These are generalized shape functions used throughout brawler to provide shapes used for value functions. These functions replicate BRAWLER v7.5 border.f

Border is a smooth step function transitioning at 0. The formula used for positive and negative arguments are designed to make border be continuous in first derivative at z=0. Also, border(z,z0) = 1-border(-z,z0).

Parameters
zbasic independent variable
z0width-defining parameter
Returns
ranges from 0 for z < z0 to 1 for z > z0
double border (const double z, const double z0)
double cauchy (const double z, const double z0)
double reward (const double z, const double z0)

Detailed Description

Namespace to contain BRAWLER unique elements including: constants, enumerations, and utilty functions

Enumeration Type Documentation

◆ InherentBiasFaultTypes

Enumerator
i_ovroff 
i_nmusup 
i_nospd 

◆ JobType

Enumerator
FLIGHT_LEAD 
ELEMENT_LEAD 
WINGMAN 

◆ ManeuverValueComponentType

Enumerator
i_voffef 
i_vlospd 
i_vform 
i_compr 
i_valdfx 
i_gaval 
i_vvec 
i_villum 
i_vmusup 
i_valevd 
i_vmaim 
i_vdisng 
i_sepval 
i_vescrt 
i_vsamz 
i_vavbdd 
i_hddval 
i_terrval 
i_vdew 
i_vtpt 

◆ MissileModeState

Enumerator
NOTASK 
INTERCEPT 

0 = not interested in shot (default)

AIMFIRE 

1 = interested in shot, get in evenlope (i.e. have a WEAPON_TASK)

ILLUMINATE 

2 = shot imminent/in progress, aim and fire (i.e. weapon in flight)

◆ MissionType

Enumerator
ROUTE 
ESCORT 
CAP 

◆ WeaponSeekerType

Enumerator
mxskr 
irskr 
saskr 
acskr 
armskr 

◆ WeaponType

Enumerator
nowepn 
kndsrm 
kndmrm 
kndlrm 
kndmis 
kndgun 
knddew 
kndwpn 

Function Documentation

◆ AimPoint()

BRAWLER_EXPORT bool BRAWLER::AimPoint ( const UtVec3d & xa,
double sa,
const UtVec3d & xt,
const UtVec3d & vt,
double st,
UtVec3d & aimp )

◆ amax1() [1/2]

◆ amax1() [2/2]

BRAWLER_EXPORT double BRAWLER::amax1 ( const double a,
const double b,
const double c )

◆ amin1()

◆ arccos()

◆ arcsin()

◆ AtmosphereDensityRatio()

double BRAWLER::AtmosphereDensityRatio ( double altitude)

From atmos.f calculating DR.

References c1, and c6.

Referenced by BrawlerPlatform::NominalProjection().

◆ avnorm()

double BRAWLER::avnorm ( const UtVec3d & x)
Parameters
x- 3 vector
Returns
Absolute value of the component of x with the largest absolute value

Referenced by BrawlerPlatform::a_lim(), and BrawlerPlatform::projw().

◆ bodyax()

UtFortMat3d BRAWLER::bodyax ( const UtFortMat3d & rwe,
double alpha )

◆ border()

◆ btest()

bool BRAWLER::btest ( const int var,
const int pos )

Returns true if the bit at pos in var is set.

References pos.

Referenced by lbit().

◆ cauchy()

◆ dist()

double BRAWLER::dist ( const UtVec3d & a,
const UtVec3d & b )

Computes separation between two 3-vectors This function replicates BRAWLER v7.5 dist.f

Parameters
a3-vec, one of the two vectors
b3-vec, the other vector
Returns
magnitude of a - b

Referenced by BrawlerEvaluation::Evaluate1v1().

◆ dsxdot()

double BRAWLER::dsxdot ( double xdes,
double x,
double xdot,
double xdotmx,
double tau )

◆ egy()

double BRAWLER::egy ( double z,
double s )

Computes specific energy from quantities This function replicates BRAWLER v7.5 evdwnt.f line 143

See also
energy
Parameters
zaltitude (feet)
sspeed (feet/sec)
Returns
specific_energy = alt + 0.5 * v**2 / grav

References grav.

◆ energy()

double BRAWLER::energy ( const UtVec3d & pos,
const UtVec3d & vel )

Computes specific energy from vectors This function replicates BRAWLER v7.5 energy.f

Parameters
posposition vector (feet)
velvelocity vector (feet/sec)
Returns
specific_energy = alt + 0.5 * v**2 / grav

References grav, pos, and vel.

Referenced by BrawlerEvaluation::Evaluate1v1(), and BrawlerEvaluation::SelfEngagementMeasure().

◆ headeg()

double BRAWLER::headeg ( UtVec3d v)

◆ InputIsValid()

bool BRAWLER::InputIsValid ( std::istringstream & aIn)

Referenced by ReadValue(), and ReadValue().

◆ intcpt()

BRAWLER_EXPORT void BRAWLER::intcpt ( const UtVec3d & xa,
double sa,
const UtVec3d & xt,
const UtVec3d & vt,
double closmn,
double angint,
double hdes,
UtVec3d & desdir,
double & sdes )

◆ intcpt_inner()

void BRAWLER::intcpt_inner ( const UtVec3d & x_atkr,
double sa,
const UtVec3d & x_tgt,
const UtVec3d & vt,
double closmn,
double angint,
double hdes,
double vs,
const UtVec3d & xlos,
double range,
UtVec3d & desdir,
double & sdes )

References AimPoint(), amax1(), rotz(), vorth(), and xlimit().

Referenced by intcpt().

◆ invtb2()

BRAWLER_EXPORT void BRAWLER::invtb2 ( double * tbl,
double z,
int nr,
int ir,
double pr,
bool revdir,
int nc,
int & ic,
double & pc )

Inverse interpolation of a 2-dim table on right index This function replicates BRAWLER v7.5 invtb2.f

Parameters
tblarray dim(nr,nc) of (real) - target of inverse interpolation
zdesired value of tbl
nrnumber of rows in tbl
irrow index (see pr)
prir and pr define row on which inverse interpolation is to be performed. that is, interpolate on "virtual" row of index ir+pr ( 0<=pr<=1 ).
revdirstart search from "right" hand edge of the table
ncnumber of columns in tbl
icsee pc
pcoutput is (ic,pc) the index and interpolation constant for which the following holds: z = tlow + pc*(thigh-tlow) tlow = tbl(ir,ic ) + pr*(tbl(ir+1,ic )-tbl(ir,ic )) thigh = tbl(ir,ic+1) + pr*(tbl(ir+1,ic+1)-tbl(ir,ic+1))

References tbl.

Referenced by BrawlerMover::aoamx1(), BrawlerMover::faoa(), BrawlerMover::get_aoa(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), and WsfBrawlerProcessor::GetAlphaAtMaxCL_deg().

◆ lbit()

bool BRAWLER::lbit ( const int word,
const int n )

References btest().

◆ LOSangleSigma() [1/2]

double BRAWLER::LOSangleSigma ( const UtFortMat3d & M,
const UtMatrixd & R6,
double R )

Replicates ecmsig() with mode for LOS angle sigma only.

References tbl.

◆ LOSangleSigma() [2/2]

double BRAWLER::LOSangleSigma ( UtFortMat3d M,
UtMatrixd R6,
double R )

References nabort().

◆ makcsi()

UtFortMat3d BRAWLER::makcsi ( const UtVec3d & xVec,
const UtVec3d & zVec )

Routine to construct orientations. Used when a coordinate system must be created. x-axis constructed by unitv; y-axis direction given by crossing bzin with bxin, cros1 assures normalization; finally, z-axis is given by crossing x and y axes. A transpose operation is then performed to make required orientation. This function replicates BRAWLER v7.5 makecs.f

Parameters
xVec3-vec its direction defines orientation's x-axis
zVec3-vec its direction, together with xVec, defines orientation's x-z plane. Ambiguity is resolved by having dot product of z-axis with zVec negative for makcsi. makcsi is useful for constructing wind and/or body axes when zVec is a lift.
Returns
resultant coordinate system

Referenced by BrawlerPlatform::a_lim(), BrawlerMover::dirct(), BrawlerMover::manwnd(), and BrawlerPlatform::projw().

◆ makecs()

UtFortMat3d BRAWLER::makecs ( const UtVec3d & xVec,
const UtVec3d & zVec )

Routine to construct orientations. Used when a coordinate system must be created. x-axis constructed by unitv; y-axis direction given by crossing bzin with bxin, cros1 assures normalization; finally, z-axis is given by crossing x and y axes. A transpose operation is then performed to make required orientation. This function replicates BRAWLER v7.5 makecs.f

Parameters
xVec3-vec its direction defines orientation's x-axis
zVec3-vec its direction, together with xVec, defines orientation's x-z plane. Ambiguity is resolved by having dot product of z-axis with zVec positive for makecs
Returns
resultant coordinate system

Referenced by BrawlerMover::adjal(), BrawlerMover::aproj3(), BrawlerEvaluation::CalcMissileAimValue(), BrawlerEvaluation::Evaluate1v1(), BrawlerMover::flact0(), BrawlerMover::laccel(), and makex().

◆ makeh()

UtFortMat3d BRAWLER::makeh ( const UtVec3d & cxin)

Equiv to makex with cxin assumed zero.

Referenced by BrawlerMover::aproj3(), BrawlerMover::gwreq(), and BrawlerMover::laccel().

◆ makex()

UtFortMat3d BRAWLER::makex ( const UtVec3d & cxin)

Equivalent to makecs with bzin=(0,0,1)

See also
makecs

References makecs().

Referenced by BrawlerPlatform::a_lim(), BrawlerPlatform::DegreeOfThreat(), BrawlerMover::dirct(), and BrawlerPlatform::projw().

◆ maxcnt()

bool BRAWLER::maxcnt ( int & count,
bool zprnt,
int mcount,
const std::string & subnam )

Checks to see if a counter has exceeded a max counter. This is to be used to check on potential infinite loops This function replicates BRAWLER v7.5 maxcnt.f

Parameters
countNumber of times through a given loop
zprntIf .true. write diagnostic prints
mcountMaximum number of times through a loop allowed
subnamName of subroutine calling maxcnt

Referenced by BrawlerMover::susgmx().

◆ mrotx()

UtFortMat3d BRAWLER::mrotx ( UtFortMat3d a,
double chi )

Referenced by BrawlerMover::dirct().

◆ nabort()

◆ NEDToECSRotation()

UtFortMat3d BRAWLER::NEDToECSRotation ( UtEntity & ref)

◆ param1()

BRAWLER_EXPORT double BRAWLER::param1 ( int i,
double xx,
double * aray )

Does a 1-dimensional interpolation This function replicates BRAWLER v7.5 param1.f

Parameters
iindex of lower bounding table entry
xxinterpolation weight of upper bounding entry
arayarray dim(int) of (double) - the table
Returns
interpolated value

Referenced by BrawlerMover::aoamx1(), BrawlerMover::aproj3(), BrawlerMover::faoa(), BrawlerMover::get_aoa(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), and BrawlerMover::laccel().

◆ ramp()

BRAWLER_EXPORT double BRAWLER::ramp ( const double xlo,
const double xval,
const double xhi )

Linear ramp function that replicates BRAWLER ramp.f Circumvents issue of whether XLO < XHI, etc. by computing a linear fit to points RAMP(XLO)=0, RAMP(XHI)=1 and truncating range to 0 when result<0 and 1 when result>1.

Parameters
xloIf xlo < xhi then ramp=0 for all xval <= xlo. If xlo>xhi then ramp=0 for all xval >= xlo
xvalRamp function independent variable
xhiIf xlo < xhi then ramp=1 for all xval >= xhi. If xlo>xhi then ramp=1 for all xval <= xhi
Returns
0 for xval outside of range (xlo,xhi) on the xlo side of range. 1 for xval outside of range (xlo,xhi) on the xhi side of range. Ramp varies linearly from 0 to 1 as xval goes from xlo to xhi.

References ramp(), and xlo.

Referenced by BrawlerMover::aproj3(), BrawlerEvaluation::CalcLowSpeedRecoveryValue(), BrawlerMover::CommandSlice(), BrawlerEvaluation::Evaluate1v1(), BrawlerEvaluation::EvaluateAlternative(), WsfBrawlerProcessor::GetConsciousnessEventTime(), intcpt(), BrawlerEvaluation::NominalSelfEngagementMeasure(), BrawlerMover::prlevl(), BrawlerPlatform::ProbabilityOfKill(), BrawlerPlatform::ProjectedTimeDelta(), and ramp().

◆ ReadValue() [1/2]

BRAWLER_EXPORT void BRAWLER::ReadValue ( UtInput & aInput,
double & aValue )

References InputIsValid(), and pos.

◆ ReadValue() [2/2]

BRAWLER_EXPORT void BRAWLER::ReadValue ( UtInput & aInput,
int & aValue )

References InputIsValid(), and pos.

Referenced by BrawlerMover::LoadAeroConfig().

◆ reward()

double BRAWLER::reward ( const double z,
const double z0 )

Reward is a linear transformation of cauchy with range from -1 to 1 instead of 0 to 1.

Parameters
zbasic independent variable
z0width-defining parameter
Returns
1 for z near 0, -1 for abs(z) > z0.

Referenced by BrawlerEvaluation::CalcRoutepointValue().

◆ rotz()

UtVec3d BRAWLER::rotz ( double phi,
const UtVec3d & vin )

Referenced by intcpt_inner().

◆ sign() [1/2]

double BRAWLER::sign ( const double a,
const double b )

◆ sign() [2/2]

◆ SpeedOfSound()

double BRAWLER::SpeedOfSound ( double altitude)

From atmos.f calculating VS.

References c1, and c6.

Referenced by intcpt().

◆ srch()

BRAWLER_EXPORT void BRAWLER::srch ( double * x,
int nx,
double xint,
int & ilow,
double & p )

Binary search of a double, ascending-sorted array This function replicates BRAWLER v7.5 srch.f

Parameters
xarray dim(*) of (double) - ascending-sorted array
nxsize of array to search
xintvalue to match
ilowlow end of active search range. If zero, xint is outside of range [x(1),x(nx)]. Otherwise, the index of the largest element of x that is less than or equal to xint.
pInterpolation constant return value, that is, xint=x(ilow) + p*(x(ilow+1)-x(ilow))

References nabort().

Referenced by BrawlerMover::aoamcl(), BrawlerMover::aoamx1(), BrawlerMover::faoa(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), WsfBrawlerProcessor::GetAlphaAtMaxCL_deg(), BrawlerMover::laccel(), tbl1(), tbl2(), and tbl2e().

◆ tbl1()

BRAWLER_EXPORT double BRAWLER::tbl1 ( double x,
double * z,
double * xval,
int nxval )

Lineraly interpolates a 1-dimensional table with variable tablesize This function replicates BRAWLER v7.5 tbl1.f

Parameters
xreal - z(x) is the desired output
zarray dim(*) of (real) - lookup table
xvalarray dim(*) of (real) - defines values of x for which z is tabulated. thus, z(i) = function_z(xval(i)) xval must be monotonically increasing
nxvalint - number of table points
Returns
interpolated value of z(x), out-of-range x's truncated

References nabort(), and srch().

Referenced by BrawlerMover::aoamx1(), BrawlerMover::corner(), WsfBrawlerProcessor::CurrentStructuralGLimit_g(), BrawlerMover::fliftm(), BrawlerMover::fxlift(), BrawlerMover::gcdadd(), WsfBrawlerProcessor::GetMaxCL(), WsfBrawlerProcessor::GetMaxCL(), WsfBrawlerProcessor::GetMaxCL(), BrawlerMover::gldmx(), BrawlerMover::Lift(), BrawlerMover::qmax(), and WsfBrawlerProcessor::StructuralGLimitAtDesignWeight_g().

◆ tbl1b()

double BRAWLER::tbl1b ( double x,
double * z,
int nx,
double xmin,
double xmax )

Interpolates a one-dimensional lookup table. Used for evenly-spaced table case. Performs work that callers of param1 may need to perform in-line. This function replicates BRAWLER v7.5 tbl1b.f

Parameters
xReal - independent variable
zArray dim(nx) of real - tabulated dependent variable. The abstract result Z(X) is desired.
nxint - Dimension of Z
xminReal - Z(1) corresponds to Z(XMIN)
xmaxReal - Z(NX) corresponds to Z(XMAX)
Returns
Interpolated Z(X). Values outside XMIN, XMAX are truncated.

Referenced by BrawlerMover::allim(), BrawlerMover::aproj3(), BrawlerMover::laccel(), and BrawlerMover::thstoa().

◆ tbl2()

BRAWLER_EXPORT double BRAWLER::tbl2 ( double x,
double y,
double * z,
double * xval,
int nxval,
double * yval,
int nyval )

Interpolates a 2-dimensional table with variable tablesize. Uses the srch function to bracket x or y between two xval's (or yval's), and then performs a linear interpolation on z. Out of bounds x and y values are truncated. This routine can handle NXVAL or NYVAL = 1. This function replicates BRAWLER v7.5 tbl2.f

Parameters
xreal - z(x,y) is the desired output
yreal - z(x,y) is the desired output
zarray dim(nxval,nyval) of (real) - lookup table
xvalarray dim(nxval) of (real) - defines values of x for which z is tabulated. xval must be monotonically increasing
nxvalint - number of table points for first z-index
yvalarray dim(nyval) of (real) - defines values of y for which z is tabulated. yval must be monotonically increasing
nyvalint - number of table points for second z-index
Returns
interpolated value of z(x,y), out-of-range x's truncated

References srch().

Referenced by BrawlerMover::fflo(), BrawlerMover::fntthr(), BrawlerMover::fxlift(), BrawlerMover::Lift(), and BrawlerMover::Thrust().

◆ tbl2e()

double BRAWLER::tbl2e ( double x,
double y,
double * z,
double * xval,
int nxval,
double * yval,
int nyval )

Interpolates a 2-dimensional table with variable tablesize. This function replicates BRAWLER v7.5 tbl2e.f

Parameters
xreal - z(x,y) is the desired output
yreal - z(x,y) is the desired output
zarray dim(nxval,nyval) of (real) - lookup table
xvalarray dim(nxval) of (real) - defines values of x for which z is tabulated. xval must be monotonically increasing
nxvalint - number of table points for first z-index
yvalarray dim(nyval) of (real) - defines values of y for which z is tabulated. yval must be monotonically increasing
nyvalint - number of table points for second z-index
Returns
interpolated value of z(x,y), out-of-range x's extrapolated

References srch().

Referenced by BrawlerMover::cas(), and BrawlerMover::CoefficientOfDrag().

◆ TryReadCommand()

BRAWLER_EXPORT bool BRAWLER::TryReadCommand ( UtInput & aInput,
std::string & aCommand )

◆ vorth()

UtVec3d BRAWLER::vorth ( const UtVec3d & a,
const UtVec3d & b )

◆ vsplit()

void BRAWLER::vsplit ( const UtVec3d & v,
const UtVec3d & x,
UtVec3d & vl,
UtVec3d & vt )

Splits a vector into parallel & perpendicular parts This function replicates BRAWLER v7.5 vsplit.f

Parameters
v- vector to be split
x- vector that defines "parallel" direction
vl- part of "v" parallel to "x"
vt- part of "v" transverse to "x"

Referenced by BrawlerEvaluation::CalcEvadeValue().

◆ xlimit()

double BRAWLER::xlimit ( const double xreq,
const double xmax,
const double xmin )

Forces value to lie in a specified range This function replicates BRAWLER v7.5 xlimit.f

Parameters
xreqreal - value to be limited to range
xmaxreal - upper range limit
xminreal - lower range limit
Returns
xmin if xreq < xmin, xmax if xreq > xmax, xreq if xmin <= xreq <= xmax

References xlimit().

Referenced by BrawlerMover::aproj3(), BrawlerMover::CommandSlice(), BrawlerPlatform::DegreeOfThreat(), BrawlerMover::deseng(), BrawlerMover::dirct(), BrawlerMover::effthr(), BrawlerEvaluation::Evaluate1v1(), BrawlerMover::fxlift(), BrawlerMover::grthr(), intcpt_inner(), BrawlerMover::Lift(), BrawlerMover::rates(), BrawlerEvaluation::SelfEngagementMeasure(), BrawlerPlatform::WeaponSimTimeOfIntercept(), BrawlerEvaluation::WeaponTimeSelfEngageMeasure(), and xlimit().

Variable Documentation

◆ cFtSec2PerG

◆ degrees2feet

double const BRAWLER::degrees2feet = 364812.76313

◆ degrees2meters

double const BRAWLER::degrees2meters = 111194.92664456

◆ eps

◆ ftnmi

◆ grav

◆ hafpi

◆ pi

double const BRAWLER::pi = 3.141592654

◆ rad

◆ re

double const BRAWLER::re = 20890377.0

◆ root2

double const BRAWLER::root2 = 1.414213562

Referenced by BrawlerMover::gwreq().

◆ twopi

double const BRAWLER::twopi = 6.283185308

◆ xlarge

Copyrights Multiple, All Rights Reserved