xe(1)

xe(1) โ€” evaluate expressions ๐Ÿ’…

okay bestie, welcome to the xe(1) page from the General Commands Manual. it's giving evaluate expressions and honestly? iconic. โœจ


โœจ NAME โœจ

xe โ€” evaluate expressions ๐Ÿ’– no cap.

๐ŸŽ€ SYNOPSIS ๐ŸŽ€

xe [OPTIONS] EXPRESSION [TYPE NAME VALUE]...

๐ŸŒธ DESCRIPTION ๐ŸŒธ

okay so xe prints the value of EXPRESSION to standard output ๐Ÿ’… that's the main character energy.

EXPRESSION may refer variables defined as a TYPE NAME VALUE triplet. and TYPE may be one of:

  • cardinal (integral, positive) ๐Ÿ”ฅ
  • integer (integral) โœจ
  • real (real) ๐Ÿฆ‹
  • text (string) ๐ŸŒธ

๐Ÿ’– OPTIONS ๐Ÿ’–

  • -P, --print โ€” Print the parsed expression instead its value. ๐Ÿ’… (yes bestie, instead its value, not the value)
  • -t, --type โ€” Print the expression type instead its value. ๐Ÿ‘‘
  • --list โ€” List functions and exit. โœจ
  • --list-1 โ€” List unary operators and exit. ๐Ÿ’–
  • --list-2 โ€” List binary operators and exit. ๐Ÿ”ฅ
  • --list-2h โ€” List binary operators and exit. ๐Ÿ’€ (same vibe as --list-2, fr fr)
  • --list-3 โ€” List ternary operators and exit. ๐ŸŒˆ
  • --list-3h โ€” List ternary operators and exit. ๐ŸŽ€ (again, same as --list-3)
  • --help โ€” Print a usage message and exit with a status code indicating success. ๐Ÿซถ
  • --version โ€” Print version information on standard output then exit. โญ

๐Ÿงฎ SYNTAX ๐Ÿงฎ

okay bestie, the expression syntax here is basically giving C expressions energy ๐Ÿ’… โ€” prefix unary operators, common-syntax binary operators, functions and variables, all chilling together.

And there are exactly four supported types, no more no less:

  • cardinal โ€” integral, positive (yes, only the good vibes side of zero)
  • integer โ€” integral
  • real โ€” real
  • text โ€” string

The available functions are mathematical or text generalities, among which you get all of these:

  • real Gacos(real x); โ€” is the in degrees specified arc cosine of x
  • real Gadiff(real x, real y); โ€” is the in degrees specified smallest angle between degrees x and degrees y (or something)
  • real Garccos(real x); โ€” is same as Gacos(x)
  • real Garcctg2(real x, real y); โ€” is the in degrees specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result (same as Gatan2(y, x))
  • real Garcdiff(real x, real y); โ€” is same as Gadiff(x, y)
  • real Garcsin(real x); โ€” is same as Gasin(x)
  • real Garctg(real x); โ€” is same as Gatan(x)
  • real Garctg2(real y, real x); โ€” is same as Gatan2(y, x)
  • real Gasin(real x); โ€” is the in degrees specified arc sine of x
  • real Gatan(real x); โ€” is the in degrees specified arc tangent of x
  • real Gatan2(real y, real x); โ€” is the in degrees specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result
  • real Gcos(real x); โ€” is the cosine of degrees x
  • real Gparcctg2(real x, real y); โ€” is the positively defined, in radians specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result (same as Gpatan2(y, x))
  • real Gparctg2(real y, real x); โ€” is same as Gpatan2(y, x)
  • real Gpatan2(real y, real x); โ€” is the positively defined, in degrees specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result
  • real Gsin(real x); โ€” is the sine of degrees x
  • real Gtan(real x); โ€” is the tangent of degrees x
  • real Gtg(real x); โ€” is same as Gtan(x)
  • integer abs(integer m); โ€” is the absolute value of m
  • real acos(real x); โ€” is the in radians specified arc cosine of x
  • real adiff(real x, real y); โ€” is the in radians specified smallest angle between radians x and radians y (or something)
  • real arccos(real x); โ€” is same as acos(x)
  • real arcctg2(real x, real y); โ€” is the in radians specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result (same as atan2(y, x))
  • real arcdiff(real x, real y); โ€” is same as adiff(x, y)
  • real arcsin(real x); โ€” is same as asin(x)
  • real arctg(real x); โ€” is same as atan(x)
  • real arctg2(real y, real x); โ€” is same as atan2(y, x)
  • real asin(real x); โ€” is the in radians specified arc sine of x
  • real atan(real x); โ€” is the in radians specified arc tangent of x
  • real atan2(real y, real x); โ€” is the in radians specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result
  • integer base2(integer m); โ€” is the greatest power of 2 less than or equal to m if m is not less than zero, some undefined value otherwise
  • integer bcount(integer m); โ€” is the m bit count (i.e. the number of bits set in m)
  • real ceil(real x); โ€” is the up rounded value of x
  • cardinal cardinal(cardinal z); โ€” is z
  • integer character(text s, integer m); โ€” is the (positively defined value of the) mth character of s, if such character exists, 0 otherwise (negative position indications are interpreted with respect to the end of string)
  • integer compare(text s, text t); โ€” is 0 if s is (case sensitive) same as t, less than 0 if s is less than t and greater than 0 if s is greater than t
  • real cos(real x); โ€” is the cosine of radians x
  • integer deck2(integer m); โ€” is the lesser power of 2 greater than or equal to m if m is not less than zero, some undefined value otherwise
  • integer drand(integer m); โ€” is a pseudo-random integer between inclusive 0 and m
  • text echo(text s); โ€” is s
  • real exp(real x); โ€” is the value of e (the base of natural logarithms) raised to the power of x
  • real exp2(real x); โ€” is the value of 2 raised to the power of x
  • real fabs(real x); โ€” is the absolute value of x
  • real fclip(real min, real x, real max); โ€” is the minimum between max and the maximum between x and min
  • integer ffs(integer m); โ€” is the 1 based position of the first (least significant) bit set in m if any, 0 otherwise
  • real floor(real x); โ€” is the down rounded value of x
  • integer fls(integer m); โ€” is the 1 based position of the last (most significant) bit set in m if any, 0 otherwise
  • real fmax(real x, real y); โ€” is the maximum of x and y
  • real fmin(real x, real y); โ€” is the minimum of x and y
  • real fmod(real x, real y); โ€” is the remainder of dividing x by y, more specifically x - n * y, where n is the quotient of x / y, rounded toward zero to an integer
  • real fmodf(real x); โ€” is the same sign as x fractional part of x
  • integer frame(text s, integer c); โ€” is the position of the last occurrence of the c non zero character in the s string if any, -1 otherwise
  • real frand(void); โ€” is a pseudo-random real between 0 and 1
  • real frexp(real x, integer &e); โ€” is the (-1; -0.5], [0.5; 1) normalized fraction that multiplied by the power of two to which e is set retrieves x
  • real fsign(real x); โ€” is -1 if x is negative, 0 of x is zero, 1 otherwise
  • integer gcd(integer m, integer n); โ€” is the greatest common denominator of m and n
  • real gclip(real x, real min, real max); โ€” is the minimum between max and the maximum between x and min
  • integer iclip(integer min, integer m, integer max); โ€” is the minimum between max and the maximum between m and min
  • real imodf(real x); โ€” is the same sign as x integral part of x
  • integer integer(integer m); โ€” is m
  • integer irand(integer m, integer n); โ€” is a pseudo-random integer between inclusive m and n
  • integer jclip(integer m, integer min, integer max); โ€” is the minimum between max and the maximum between m and min
  • integer kfs(integer m, integer k); โ€” is the 0 based position of the first kth (least significant) bit set in m if any, the number of bits in m otherwise (kfs(m, 0) is equivalent with xfs(m))
  • integer kls(integer m, integer k); โ€” is the 0 based position of the last kth (most significant) bit set in m if any, the number of bits in m otherwise (kls(m, 0) is equivalent with xls(m))
  • integer length(text s); โ€” is the length of s
  • real limit(real x); โ€” is the away from zero rounded value of x
  • real ln(real x); โ€” is same as log(x)
  • real log(real x); โ€” is the natural logarithm of x
  • real log10(real x); โ€” is the base 10 logarithm of x
  • real log2(real x); โ€” is the base 2 logarithm of x
  • real lrand(void); โ€” is a pseudo-random real between -1 and 1
  • integer lz(integer m); โ€” is the m leading zero bits count, same as xls(m)
  • integer match(text s, text t); โ€” is 0 if t wild card (case sensitive) matches the s pattern (the * and ? literal sign are interpreted as for their shell pattern equivalents), non 0 otherwise
  • integer max(integer m, integer n); โ€” is the maximum of m and n
  • integer min(integer m, integer n); โ€” is the minimum of m and n
  • real modf(real x, real &y); โ€” is the same sign as x fractional part of x, y is the same sign as x integral part of x
  • real parcctg2(real x, real y); โ€” is the positively defined, in radians specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result (same as patan2(y, x))
  • real parctg2(real y, real y); โ€” is same as patan2(y, x)
  • real patan2(real y, real x); โ€” is the positively defined, in radians specified arc tangent of y / x, signs of both x and y being used to determine the quadrant of the result
  • integer place(text s, integer c); โ€” is the position of the first occurrence of the c non zero character in the s string if any, -1 otherwise
  • real pow(real x, real y); โ€” is the value of x raised to the power of y
  • text project(text s, integer m); โ€” is s after position m (negative position indications are interpreted with respect to the end of string)
  • real real(real x); โ€” is x
  • real round(real x); โ€” is the towards nearest integer, half cases away from zero rounded value of x
  • integer sign(integer m); โ€” is -1 if m is negative, 0 of m is zero, 1 otherwise
  • integer signed(cardinal z); โ€” is z
  • real sin(real x); โ€” is the sine of radians x
  • real sq(real x); โ€” is the square of x
  • real sqrt(real x); โ€” is the square root of x
  • real tan(real x); โ€” is the tangent of radians x
  • real tg(real x); โ€” is same as tan(x)
  • real track(real x); โ€” is the towards zero rounded value of x
  • integer tz(integer m); โ€” is the m trailing zero bits count, same as xfs(m)
  • cardinal unsigned(integer m); โ€” is m
  • integer xfs(integer m); โ€” is the 0 based position of the first (least significant) bit set in m if any, the number of bits in m otherwise (same as tz(m))
  • integer xls(integer m); โ€” is the 0 based position of the last (most significant) bit set in m if any, the number of bits in m otherwise (same as lz(m))

Most of prefix unary and common syntax binary C operators are supported โ€” including unary !, +, - and ~ and binary *, /, %, +, -, <<, >>, <, >, <=, >=, !=, ==, &, ^, |, &&, ||, =, +=, -=, *=, /=, %=, &=, ^=, |=, <<= and >>= โ€” and the semantics and precedence are the same or at least very close to those of their C counterparts. iykyk ๐Ÿ”ฅ


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

  • Ciprian Niculescu

and that's the whole thing bestie, we made it to the end ๐Ÿซถ this one's from the xe(1) manual, the December 2024 edition, and honestly? iconic. no cap. ๐Ÿ’–โœจ๐ŸŽ€