Options
All
  • Public
  • Public/Protected
  • All
Menu

Module "internal/codegen"

Index

Variables

Const ARGS_V

ARGS_V: "o,a" = "o,a"
internal

Const ARGS_VN

ARGS_VN: "o,a,n" = "o,a,n"
internal

Const ARGS_VNV

ARGS_VNV: "o,a,n,b" = "o,a,n,b"
internal

Const ARGS_VV

ARGS_VV: "o,a,b" = "o,a,b"
internal

Const ARGS_VVN

ARGS_VVN: "o,a,b,n" = "o,a,b,n"
internal

Const ARGS_VVV

ARGS_VVV: "o,a,b,c" = "o,a,b,c"
internal

Const DEFAULT_OUT

DEFAULT_OUT: "!o&&(o=a);" = "!o&&(o=a);"
internal

Const NEW_OUT

NEW_OUT: "!o&&(o=[]);" = "!o&&(o=[]);"
internal

Const SARGS_V

SARGS_V: "io=0,ia=0,so=1,sa=1" = "io=0,ia=0,so=1,sa=1"
internal

Const SARGS_VV

SARGS_VV: "io=0,ia=0,ib=0,so=1,sa=1,sb=1" = "io=0,ia=0,ib=0,so=1,sa=1,sb=1"
internal

Const SARGS_VVV

SARGS_VVV: "io=0,ia=0,ib=0,ic=0,so=1,sa=1,sb=1,sc=1" = "io=0,ia=0,ib=0,ic=0,so=1,sa=1,sb=1,sc=1"
internal

Functions

Const assemble

  • assemble(dim: number, tpl: Template, syms: string, ret?: string, opJoin?: string, pre?: string, post?: string, strided?: boolean): string[]
  • Code generator for loop-unrolled vector operations. Takes a vector size dim, a code template function tpl and an array of symbol names participating in the template. For each symbol, creates iterator of index lookups (e.g. a[0] or a[ia+k*sa]), forms them into tuples and passes them to template to generate code and joins generated result with opJoin separator (default: "").

    If the optional ret arg is not null (default "a"), appends a return statement to the result array, using ret as return value. Returns array of source code lines.

    The optional pre and post strings can be used to wrap the generated code. post will be injected before the generated return statement (if not suppressed).

    Parameters

    • dim: number

      -

    • tpl: Template

      -

    • syms: string

      -

    • Default value ret: string = "a"

      -

    • Default value opJoin: string = ""

      -

    • Default value pre: string = ""

      -

    • Default value post: string = ""

      -

    • Default value strided: boolean = false

      -

    Returns string[]

Const assembleG

  • assembleG(tpl: Template, syms: string, ret?: string, pre?: undefined | string, post?: undefined | string, strided?: boolean): (undefined | string)[]

Const compile

  • compile(dim: number, tpl: Template, args: string, syms?: string, ret?: string, opJoin?: undefined | string, pre?: undefined | string, post?: undefined | string, strided?: boolean): any
  • internal

    Parameters

    • dim: number
    • tpl: Template
    • args: string
    • Default value syms: string = args
    • Default value ret: string = "a"
    • Optional opJoin: undefined | string
    • Optional pre: undefined | string
    • Optional post: undefined | string
    • Default value strided: boolean = false

    Returns any

Const compileG

  • compileG(tpl: Template, args: string, syms?: string, ret?: string, pre?: undefined | string, post?: undefined | string, strided?: boolean): any
  • internal

    Parameters

    • tpl: Template
    • args: string
    • Default value syms: string = args
    • Default value ret: string = "a"
    • Optional pre: undefined | string
    • Optional post: undefined | string
    • Default value strided: boolean = false

    Returns any

Const compileGHOF

  • compileGHOF(fns: any[], tpl: Template, hofArgs: string, args: string, syms?: string, ret?: string, pre?: undefined | string, post?: undefined | string, strided?: boolean): any
  • internal

    Parameters

    • fns: any[]
    • tpl: Template
    • hofArgs: string
    • args: string
    • Default value syms: string = args
    • Default value ret: string = "a"
    • Optional pre: undefined | string
    • Optional post: undefined | string
    • Default value strided: boolean = false

    Returns any

Const compileHOF

  • compileHOF(dim: number, fns: any[], tpl: Template, hofArgs: string, args: string, syms?: string, ret?: string, opJoin?: string, pre?: undefined | string, post?: undefined | string, strided?: boolean): any
  • internal

    Parameters

    • dim: number
    • fns: any[]
    • tpl: Template
    • hofArgs: string
    • args: string
    • Default value syms: string = args
    • Default value ret: string = "a"
    • Default value opJoin: string = ""
    • Optional pre: undefined | string
    • Optional post: undefined | string
    • Default value strided: boolean = false

    Returns any

Const defBitOp

  • defBitOp(op: string, signed?: boolean): [MultiVecOpImpl<Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>]
  • Parameters

    • op: string
    • Default value signed: boolean = false

    Returns [MultiVecOpImpl<Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>]

Const defBitOpN

  • defBitOpN(op: string, signed?: boolean): [MultiVecOpImpl<Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>>, Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>]

Const defFnOp

  • defFnOp<M, V>(op: string): [M, V, V, V]

Const defHofOp

  • defHofOp<M, V>(op: any, tpl?: Template, args?: string, syms?: undefined | string, ret?: string, dispatch?: number, pre?: undefined | string): [M, V, V, V]
  • Type parameters

    • M

    • V

    Parameters

    • op: any
    • Optional tpl: Template
    • Default value args: string = ARGS_V
    • Optional syms: undefined | string
    • Default value ret: string = "o"
    • Default value dispatch: number = 1
    • Optional pre: undefined | string

    Returns [M, V, V, V]

Const defHofOpS

  • defHofOpS<V>(op: any, tpl: Template, args?: string, syms?: string, ret?: string, pre?: undefined | string, sizes?: number[]): V[]
  • Type parameters

    • V

    Parameters

    • op: any
    • tpl: Template
    • Default value args: string = `${ARGS_VV},${SARGS_VV}`
    • Default value syms: string = ARGS_VV
    • Default value ret: string = "o"
    • Optional pre: undefined | string
    • Default value sizes: number[] = [2, 3, 4]

    Returns V[]

Const defMathOp

  • defMathOp(op: string): [MultiVecOpImpl<Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, ArrayLikeIterable<number>, Vec>]

Const defMathOpN

  • defMathOpN(op: string): [MultiVecOpImpl<Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>>, Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>, Fn3<null | Vec, ArrayLikeIterable<number>, number, Vec>]

Const defOp

  • defOp<M, V>(tpl: Template, args?: string, syms?: undefined | string, ret?: string, dispatch?: number, pre?: undefined | string): [M, V, V, V]
  • Type parameters

    • M

    • V

    Parameters

    • tpl: Template
    • Default value args: string = ARGS_VV
    • Optional syms: undefined | string
    • Default value ret: string = "o"
    • Default value dispatch: number = 1
    • Optional pre: undefined | string

    Returns [M, V, V, V]

Const defOpS

  • defOpS<V>(tpl: Template, args?: string, syms?: string, ret?: string, pre?: undefined | string, sizes?: number[]): V[]
  • Type parameters

    • V

    Parameters

    • tpl: Template
    • Default value args: string = `${ARGS_VV},${SARGS_VV}`
    • Default value syms: string = ARGS_VV
    • Default value ret: string = "o"
    • Optional pre: undefined | string
    • Default value sizes: number[] = [2, 3, 4]

    Returns V[]

Const defaultOut

  • defaultOut(o: string, args: string): string

Const indices

  • indices(sym: string): IterableIterator<string>

Const indicesStrided

  • indicesStrided(sym: string): IterableIterator<string>

Const lookup

  • lookup(sym: string): (Anonymous function)
  • HOF array index lookup gen to provide optimized versions of:

    example
    lookup("a")(0) // a[ia]
    lookup("a")(1) // a[ia * sa]
    lookup("a")(2) // a[ia + 2 * sa]

    Parameters

    • sym: string

      -

    Returns (Anonymous function)

Generated using TypeDoc