home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 October A / Pcwk10a98.iso / Inprise / TRIAL / INTRBASE / DATA.Z / ib_udf.sql < prev    next >
Text File  |  1998-03-15  |  16KB  |  584 lines

  1. /*****************************************
  2.  *
  3.  *    a b s
  4.  *
  5.  *****************************************
  6.  *
  7.  * Functional description:
  8.  *     Returns the absolute value of a 
  9.  *     number.  
  10.  *
  11.  *****************************************/
  12. DECLARE EXTERNAL FUNCTION abs 
  13.     DOUBLE PRECISION
  14.     RETURNS DOUBLE PRECISION BY VALUE
  15.     ENTRY_POINT "IB_UDF_abs" MODULE_NAME "ib_udf";
  16.  
  17. /*****************************************
  18.  *
  19.  *    a c o s
  20.  *
  21.  *****************************************
  22.  *
  23.  * Functional description:
  24.  *    Returns the arccosine of a number 
  25.  *    between -1 and 1, if the number is
  26.  *    out of bounds it returns NaN, as handled
  27.  *    by the _matherr routine.
  28.  *
  29.  *****************************************/
  30. DECLARE EXTERNAL FUNCTION acos 
  31.     DOUBLE PRECISION
  32.     RETURNS DOUBLE PRECISION BY VALUE
  33.     ENTRY_POINT "IB_UDF_acos" MODULE_NAME "ib_udf";
  34.  
  35. /*****************************************
  36.  *
  37.  *    a s c i i _ c h a r
  38.  *
  39.  *****************************************
  40.  *
  41.  * Functional description:
  42.  *    Returns the ASCII character corresponding
  43.  *    with the value passed in.
  44.  *
  45.  *****************************************/
  46. DECLARE EXTERNAL FUNCTION ascii_char
  47.     INTEGER
  48.     RETURNS CHAR(1) FREE_IT
  49.     ENTRY_POINT "IB_UDF_ascii_char" MODULE_NAME "ib_udf";
  50.  
  51. /*****************************************
  52.  *
  53.  *    a s c i i _ v a l
  54.  *
  55.  *****************************************
  56.  *
  57.  * Functional description:
  58.  *    Returns the ascii value of the character
  59.  *     passed in.
  60.  *
  61.  *****************************************/
  62. DECLARE EXTERNAL FUNCTION ascii_val
  63.     CHAR(1)
  64.     RETURNS INTEGER BY VALUE
  65.     ENTRY_POINT "IB_UDF_ascii_val" MODULE_NAME "ib_udf";
  66.  
  67. /*****************************************
  68.  *
  69.  *    a s i n
  70.  *
  71.  *****************************************
  72.  *
  73.  * Functional description:
  74.  *    Returns the arcsin of a number between
  75.  *    -1 and 1, if the number is out of
  76.  *    range NaN is returned.
  77.  *
  78.  *****************************************/
  79. DECLARE EXTERNAL FUNCTION asin 
  80.     DOUBLE PRECISION
  81.     RETURNS DOUBLE PRECISION BY VALUE
  82.     ENTRY_POINT "IB_UDF_asin" MODULE_NAME "ib_udf";
  83.  
  84. /*****************************************
  85.  *
  86.  *    a t a n
  87.  *
  88.  *****************************************
  89.  *
  90.  * Functional description:
  91.  *    Returns the arctangent of a number.
  92.  *    
  93.  *
  94.  *****************************************/
  95. DECLARE EXTERNAL FUNCTION atan 
  96.     DOUBLE PRECISION
  97.     RETURNS DOUBLE PRECISION BY VALUE
  98.     ENTRY_POINT "IB_UDF_atan" MODULE_NAME "ib_udf";
  99.  
  100. /*****************************************
  101.  *
  102.  *    a t a n 2
  103.  *
  104.  *****************************************
  105.  *
  106.  * Functional description:
  107.  *     Returns the arctangent of the
  108.  *    first param / the second param.
  109.  *
  110.  *****************************************/
  111. DECLARE EXTERNAL FUNCTION atan2 
  112.     DOUBLE PRECISION, DOUBLE PRECISION
  113.     RETURNS DOUBLE PRECISION BY VALUE
  114.     ENTRY_POINT "IB_UDF_atan2" MODULE_NAME "ib_udf";
  115.  
  116. /*****************************************
  117.  *
  118.  *    b i n _ a n d
  119.  *
  120.  *****************************************
  121.  *
  122.  * Functional description:
  123.  *    Returns the result of a binary AND 
  124.  *    operation performed on the two numbers.
  125.  *
  126.  *****************************************/
  127. DECLARE EXTERNAL FUNCTION bin_and 
  128.     INTEGER, INTEGER
  129.     RETURNS INTEGER BY VALUE
  130.     ENTRY_POINT "IB_UDF_bin_and" MODULE_NAME "ib_udf";
  131.  
  132. /*****************************************
  133.  *
  134.  *    b i n _ o r
  135.  *
  136.  *****************************************
  137.  *
  138.  * Functional description:
  139.  *    Returns the result of a binary OR 
  140.  *    operation performed on the two numbers.
  141.  *
  142.  *****************************************/
  143. DECLARE EXTERNAL FUNCTION bin_or 
  144.     INTEGER, INTEGER
  145.     RETURNS INTEGER BY VALUE
  146.     ENTRY_POINT "IB_UDF_bin_or" MODULE_NAME "ib_udf";
  147.  
  148. /*****************************************
  149.  *
  150.  *    b i n _ x o r
  151.  *
  152.  *****************************************
  153.  *
  154.  * Functional description:
  155.  *    Returns the result of a binary XOR 
  156.  *    operation performed on the two numbers.
  157.  *
  158.  *****************************************/
  159. DECLARE EXTERNAL FUNCTION bin_xor 
  160.     INTEGER, INTEGER
  161.     RETURNS INTEGER BY VALUE
  162.     ENTRY_POINT "IB_UDF_bin_xor" MODULE_NAME "ib_udf";
  163.  
  164. /*****************************************
  165.  *
  166.  *    c e i l i n g
  167.  *
  168.  *****************************************
  169.  *
  170.  * Functional description:
  171.  *    Returns a double value representing 
  172.  *    the smallest integer that is greater 
  173.  *    than or equal to the input value.
  174.  *
  175.  *****************************************/
  176. DECLARE EXTERNAL FUNCTION ceiling 
  177.     DOUBLE PRECISION
  178.     RETURNS DOUBLE PRECISION BY VALUE
  179.     ENTRY_POINT "IB_UDF_ceiling" MODULE_NAME "ib_udf";
  180.  
  181. /*****************************************
  182.  *
  183.  *    c o s
  184.  *
  185.  *****************************************
  186.  *
  187.  * Functional description:
  188.  *    The cos function returns the cosine 
  189.  *    of x. If x is greater than or equal 
  190.  *    to 263, or less than or equal to -263, 
  191.  *    a loss of significance in the result 
  192.  *    of a call to cos occurs, in which case 
  193.  *    the function generates a _TLOSS error 
  194.  *    and returns an indefinite (same as a 
  195.  *    quiet NaN).
  196.  *
  197.  *****************************************/
  198. DECLARE EXTERNAL FUNCTION cos 
  199.     DOUBLE PRECISION
  200.     RETURNS DOUBLE PRECISION BY VALUE
  201.     ENTRY_POINT "IB_UDF_cos" MODULE_NAME "ib_udf";
  202.  
  203. /*****************************************
  204.  *
  205.  *    c o s h
  206.  *
  207.  *****************************************
  208.  *
  209.  * Functional description:
  210.  *    The cosh function returns the hyperbolic cosine 
  211.  *    of x. If x is greater than or equal 
  212.  *    to 263, or less than or equal to -263, 
  213.  *    a loss of significance in the result 
  214.  *    of a call to cos occurs, in which case 
  215.  *    the function generates a _TLOSS error 
  216.  *    and returns an indefinite (same as a 
  217.  *    quiet NaN).
  218.  *
  219.  *****************************************/
  220. DECLARE EXTERNAL FUNCTION cosh 
  221.     DOUBLE PRECISION
  222.     RETURNS DOUBLE PRECISION BY VALUE
  223.     ENTRY_POINT "IB_UDF_cosh" MODULE_NAME "ib_udf";
  224.  
  225. /*****************************************
  226.  *
  227.  *    c o t
  228.  *
  229.  *****************************************
  230.  *
  231.  * Functional description:
  232.  *    Returns 1 over the tangent of the
  233.  *    input parameter.
  234.  *
  235.  *****************************************/
  236. DECLARE EXTERNAL FUNCTION cot 
  237.     DOUBLE PRECISION
  238.     RETURNS DOUBLE PRECISION BY VALUE
  239.     ENTRY_POINT "IB_UDF_cot" MODULE_NAME "ib_udf";
  240.  
  241. /*****************************************
  242.  *
  243.  *    d i v
  244.  *
  245.  *****************************************
  246.  *
  247.  * Functional description:
  248.  *    Returns the quotient part of the division
  249.  *    of the two input parameters.
  250.  *
  251.  *****************************************/
  252. DECLARE EXTERNAL FUNCTION div 
  253.     INTEGER, INTEGER
  254.     RETURNS DOUBLE PRECISION BY VALUE
  255.     ENTRY_POINT "IB_UDF_div" MODULE_NAME "ib_udf";
  256.  
  257. /*****************************************
  258.  *
  259.  *    f l o o r
  260.  *
  261.  *****************************************
  262.  *
  263.  * Functional description:
  264.  *     Returns a floating-point value 
  265.  *     representing the largest integer that 
  266.  *    is less than or equal to x    
  267.  *
  268.  *****************************************/
  269. DECLARE EXTERNAL FUNCTION floor 
  270.     DOUBLE PRECISION
  271.     RETURNS DOUBLE PRECISION BY VALUE
  272.     ENTRY_POINT "IB_UDF_floor" MODULE_NAME "ib_udf";
  273.  
  274. /*****************************************
  275.  *
  276.  *    l n
  277.  *
  278.  *****************************************
  279.  *
  280.  * Functional description:
  281.  *    Returns the natural log of a number.
  282.  *
  283.  *****************************************/
  284. DECLARE EXTERNAL FUNCTION ln 
  285.     DOUBLE PRECISION
  286.     RETURNS DOUBLE PRECISION BY VALUE
  287.     ENTRY_POINT "IB_UDF_ln" MODULE_NAME "ib_udf";
  288.  
  289. /*****************************************
  290.  *
  291.  *    l o g
  292.  *
  293.  *****************************************
  294.  *
  295.  * Functional description:
  296.  *    log (x,y) returns the logarithm 
  297.  *    base x of y.
  298.  *
  299.  *****************************************/
  300. DECLARE EXTERNAL FUNCTION log 
  301.     DOUBLE PRECISION, DOUBLE PRECISION
  302.     RETURNS DOUBLE PRECISION BY VALUE
  303.     ENTRY_POINT "IB_UDF_log" MODULE_NAME "ib_udf";
  304.  
  305. /*****************************************
  306.  *
  307.  *    l o g 1 0
  308.  *
  309.  *****************************************
  310.  *
  311.  * Functional description:
  312.  *    Returns the logarithm base 10 of the
  313.  *    input parameter.
  314.  *
  315.  *****************************************/
  316. DECLARE EXTERNAL FUNCTION log10 
  317.     DOUBLE PRECISION
  318.     RETURNS DOUBLE PRECISION BY VALUE
  319.     ENTRY_POINT "IB_UDF_log10" MODULE_NAME "ib_udf";
  320.  
  321. /*****************************************
  322.  *
  323.  *    l o w e r
  324.  *
  325.  *****************************************
  326.  *
  327.  * Functional description:
  328.  *    Returns the input string into lower 
  329.  *    case characters.  Note: This function
  330.  *    will not work with international and 
  331.  *    non-ascii characters.
  332.  *    Note: This function is NOT limited to
  333.  *    receiving and returning only 80 characters,
  334.  *    rather, it can use as long as 32767 
  335.  *     characters which is the limit on an 
  336.  *    INTERBASE character string.
  337.  *
  338.  *****************************************/
  339. DECLARE EXTERNAL FUNCTION lower 
  340.     CSTRING(80)
  341.     RETURNS CSTRING(80) FREE_IT
  342.     ENTRY_POINT "IB_UDF_lower" MODULE_NAME "ib_udf";
  343.  
  344. /*****************************************
  345.  *
  346.  *    l t r i m
  347.  *
  348.  *****************************************
  349.  *
  350.  * Functional description:
  351.  *    Removes leading spaces from the input
  352.  *    string.
  353.  *    Note: This function is NOT limited to
  354.  *    receiving and returning only 80 characters,
  355.  *    rather, it can use as long as 32767 
  356.  *     characters which is the limit on an 
  357.  *    INTERBASE character string.
  358.  *
  359.  *****************************************/
  360. DECLARE EXTERNAL FUNCTION ltrim 
  361.     CSTRING(80)
  362.     RETURNS CSTRING(80) FREE_IT
  363.     ENTRY_POINT "IB_UDF_ltrim" MODULE_NAME "ib_udf";
  364.  
  365. /*****************************************
  366.  *
  367.  *    m o d
  368.  *
  369.  *****************************************
  370.  *
  371.  * Functional description:
  372.  *    Returns the remainder part of the 
  373.  *    division of the two input parameters.
  374.  *
  375.  *****************************************/
  376. DECLARE EXTERNAL FUNCTION mod 
  377.     INTEGER, INTEGER
  378.     RETURNS DOUBLE PRECISION BY VALUE
  379.     ENTRY_POINT "IB_UDF_mod" MODULE_NAME "ib_udf";
  380.  
  381. /*****************************************
  382.  *
  383.  *    p i
  384.  *
  385.  *****************************************
  386.  *
  387.  * Functional description:
  388.  *    Returns the value of pi = 3.1459...
  389.  *
  390.  *****************************************/
  391. DECLARE EXTERNAL FUNCTION pi 
  392.     RETURNS DOUBLE PRECISION BY VALUE
  393.     ENTRY_POINT "IB_UDF_pi" MODULE_NAME "ib_udf";
  394.  
  395. /*****************************************
  396.  *
  397.  *    r a n d
  398.  *
  399.  *****************************************
  400.  *
  401.  * Functional description:
  402.  *    Returns a random number between 0 
  403.  *    and 1.  Note the random number
  404.  *    generator is seeded using the current 
  405.  *    time.
  406.  *
  407.  *****************************************/
  408. DECLARE EXTERNAL FUNCTION rand 
  409.     RETURNS DOUBLE PRECISION BY VALUE
  410.     ENTRY_POINT "IB_UDF_rand" MODULE_NAME "ib_udf";
  411.  
  412. /*****************************************
  413.  *
  414.  *    r t r i m
  415.  *
  416.  *****************************************
  417.  *
  418.  * Functional description:
  419.  *    Removes trailing spaces from the input
  420.  *    string.
  421.  *    Note: This function is NOT limited to
  422.  *    receiving and returning only 80 characters,
  423.  *    rather, it can use as long as 32767 
  424.  *     characters which is the limit on an 
  425.  *    INTERBASE character string.
  426.  *
  427.  *****************************************/
  428. DECLARE EXTERNAL FUNCTION rtrim 
  429.     CSTRING(80)
  430.     RETURNS CSTRING(80) FREE_IT
  431.     ENTRY_POINT "IB_UDF_rtrim" MODULE_NAME "ib_udf";
  432.  
  433. /*****************************************
  434.  *
  435.  *    s i g n
  436.  *
  437.  *****************************************
  438.  *
  439.  * Functional description:
  440.  *    Returns 1, 0, or -1 depending on whether
  441.  *     the input value is positive, zero or 
  442.  *    negative, respectively.
  443.  *
  444.  *****************************************/
  445. DECLARE EXTERNAL FUNCTION sign 
  446.     DOUBLE PRECISION
  447.     RETURNS INTEGER BY VALUE
  448.     ENTRY_POINT "IB_UDF_sign" MODULE_NAME "ib_udf";
  449.  
  450. /*****************************************
  451.  *
  452.  *    s i n
  453.  *
  454.  *****************************************
  455.  *
  456.  * Functional description:
  457.  *    Returns the sine of x. If x is greater 
  458.  *    than or equal to 263, or less than or 
  459.  *    equal to -263, a loss of significance 
  460.  *    in the result occurs, in which case the 
  461.  *    function generates a _TLOSS error and 
  462.  *    returns an indefinite (same as a quiet NaN).
  463.  *
  464.  *****************************************/
  465. DECLARE EXTERNAL FUNCTION sin 
  466.     DOUBLE PRECISION
  467.     RETURNS DOUBLE PRECISION BY VALUE
  468.     ENTRY_POINT "IB_UDF_sin" MODULE_NAME "ib_udf";
  469.  
  470. /*****************************************
  471.  *
  472.  *    s i n h
  473.  *
  474.  *****************************************
  475.  *
  476.  * Functional description:
  477.  *    Returns the hyperbolic sine of x. If x is greater 
  478.  *    than or equal to 263, or less than or 
  479.  *    equal to -263, a loss of significance 
  480.  *    in the result occurs, in which case the 
  481.  *    function generates a _TLOSS error and 
  482.  *    returns an indefinite (same as a quiet NaN).
  483.  *
  484.  *****************************************/
  485. DECLARE EXTERNAL FUNCTION sinh 
  486.     DOUBLE PRECISION
  487.     RETURNS DOUBLE PRECISION BY VALUE
  488.     ENTRY_POINT "IB_UDF_sinh" MODULE_NAME "ib_udf";
  489.  
  490. /*****************************************
  491.  *
  492.  *    s q r t
  493.  *
  494.  *****************************************
  495.  *
  496.  * Functional description:
  497.  *    Returns the square root of a number.
  498.  *
  499.  *****************************************/
  500. DECLARE EXTERNAL FUNCTION sqrt 
  501.     DOUBLE PRECISION
  502.     RETURNS DOUBLE PRECISION BY VALUE
  503.     ENTRY_POINT "IB_UDF_sqrt" MODULE_NAME "ib_udf";
  504.  
  505. /*****************************************
  506.  *
  507.  *    s u b s t r
  508.  *
  509.  *****************************************
  510.  *
  511.  * Functional description:
  512.  *    substr(s,m,n) returns the substring 
  513.  *    of s which starts at position m and
  514.  *    ending at position n.
  515.  *    Note: This function is NOT limited to
  516.  *    receiving and returning only 80 characters,
  517.  *    rather, it can use as long as 32767 
  518.  *     characters which is the limit on an 
  519.  *    INTERBASE character string.
  520.  *
  521.  *****************************************/
  522. DECLARE EXTERNAL FUNCTION substr 
  523.     CSTRING(80), SMALLINT, SMALLINT
  524.     RETURNS CSTRING(80) FREE_IT
  525.     ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf";
  526.  
  527. /*****************************************
  528.  *
  529.  *    s t r l e n
  530.  *
  531.  *****************************************
  532.  *
  533.  * Functional description:
  534.  *    Returns the length of a given string.
  535.  *
  536.  *****************************************/
  537. DECLARE EXTERNAL FUNCTION strlen 
  538.     CSTRING(32767)
  539.     RETURNS INTEGER BY VALUE
  540.     ENTRY_POINT "IB_UDF_strlen" MODULE_NAME "ib_udf";
  541.  
  542. /*****************************************
  543.  *
  544.  *    t a n
  545.  *
  546.  *****************************************
  547.  *
  548.  * Functional description:
  549.  *     Returns the tangent of x. If x is 
  550.  *    greater than or equal to 263, or less 
  551.  *    than or equal to -263, a loss of 
  552.  *    significance in the result occurs, in 
  553.  *    which case the function generates a 
  554.  *    _TLOSS error and returns an indefinite 
  555.  *    (same as a quiet NaN).
  556.  *
  557.  *****************************************/
  558. DECLARE EXTERNAL FUNCTION tan 
  559.     DOUBLE PRECISION
  560.     RETURNS DOUBLE PRECISION BY VALUE
  561.     ENTRY_POINT "IB_UDF_tan" MODULE_NAME "ib_udf";
  562.  
  563. /*****************************************
  564.  *
  565.  *    t a n h
  566.  *
  567.  *****************************************
  568.  *
  569.  * Functional description:
  570.  *     Returns the tangent of x. If x is 
  571.  *    greater than or equal to 263, or less 
  572.  *    than or equal to -263, a loss of 
  573.  *    significance in the result occurs, in 
  574.  *    which case the function generates a 
  575.  *    _TLOSS error and returns an indefinite 
  576.  *    (same as a quiet NaN).
  577.  *    
  578.  *****************************************/
  579. DECLARE EXTERNAL FUNCTION tanh 
  580.     DOUBLE PRECISION
  581.     RETURNS DOUBLE PRECISION BY VALUE
  582.     ENTRY_POINT "IB_UDF_tanh" MODULE_NAME "ib_udf";
  583.  
  584.