Patch title: Release 91 bulk changes
Abstract:
File: /math/functions.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/os.pli"
module "/pliant/language/compiler.pli"
module "/pliant/language/generator.pli"


named_expression math1_expr
  function name f -> r
    arg Float f r
    external math_library string_name
module "/pliant/language/os.pli"
module "/pliant/language/compiler.pli"
module "/pliant/language/generator.pli"


named_expression math1_expr
  function name f -> r
    arg Float f r
    external math_library string_name
    has_no_side_effect
  gvar Int temp := (the_function name Float -> Float) modify_registers
  (the_function name Float -> Float) set_generate_assembly (
  (the_function name Float -> Float) set_generate_assembly (
  (the_function name Float -> Float) modify_registers := temp
  export name

meta math1 e
  if e:size<>1 or e:0:ident=""
    return
  var Str name := e:0:ident
  export name

meta math1 e
  if e:size<>1 or e:0:ident=""
    return
  var Str name := e:0:ident
  e compile_as (expression duplicate math1_expr substitute n
  e compile_as (expression duplicate math1_expr substitute name (expression ident name near e:0) substitute string_name (expression constant name near e:0) substitute temp (expression ident "temp_"+name near e:0))



named_expression math2_expr
  function name a b -> r
    arg Float a b r
    external math_library string_name



named_expression math2_expr
  function name a b -> r
    arg Float a b r
    external math_library string_name
    has_no_side_effect
  gvar Int temp := (the_function name Float Float -> Float) modify_registers
  (the_function name Float Float -> Float) set_generate_asse
  (the_function name Float Float -> Float) set_generate_asse
  (the_function name Float Float -> Float) modify_registers := temp
  export name

meta math2 e
  if e:size<>1 or e:0:ident=""
    return
  var Str name := e:0 ident
  export name

meta math2 e
  if e:size<>1 or e:0:ident=""
    return
  var Str name := e:0 ident
  e compile_as (expression duplicate math2_expr substitute n
  e compile_as (expression duplicate math2_expr substitute name (expression ident name near e:0) substitute string_name (expression constant name near e:0) substitute temp (expression ident "temp_"+name near e:0))


math1 sin
math1 cos
math1 tan
math1 asin
math1 acos
math1 atan
math1 exp
math1 log
math2 pow


math1 sin
math1 cos
math1 tan
math1 asin
math1 acos
math1 atan
math1 exp
math1 log
math2 pow